如何检查何时编辑UITextView?

时间:2011-11-15 18:22:28

标签: iphone objective-c ios xcode uitextview

我正在使用以下代码,但在开始编辑UITextView时无法识别:

-(void)textViewDidBeginEditing:(UITextView *)textView{

[done setHidden:NO];

NSLog(@"Started editing target!");

}

为什么会这样?

我也已将代理添加到.h文件中。

5 个答案:

答案 0 :(得分:5)

尝试设置UITextView的委托。您需要在Interface Builder中将插座连接到委托,或者如果您以编程方式创建它,您可以:

yourTextView.delegate = self;

将委托设置为要插入元素的控制器。

答案 1 :(得分:5)

if ([self.textView isFirstResponder]) ...

更新:我包含完整的来源,表明UITextView肯定会响应isFirstResponder @ d2burke

#import "TextViewController.h"

@interface TextViewController ()
@property (nonatomic, retain) IBOutlet UITextView *textView;
@end

@implementation TextViewController

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
}

- (IBAction)click:(UIButton *)check
{
    BOOL isActive = [self.textView isFirstResponder];
    NSLog(@"%d", isActive);
}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

@end

答案 2 :(得分:2)

请确保你:

  1. nameOfTextView .delegate = self;
  2. 显示您在班级中使用UITextViewDelegate的编译器

答案 3 :(得分:1)

  1. Firstly you have to set UIViewController <UITextViewDelegate>
  2. Set

    yourTextview.delegate = self;

  3. And catch this delegate using

    -(void)textViewDidBeginEditing:(UITextView *)textView { [self.yourTextview setText:@""]; [yourTextview setTextColor:[UIColor blackColor]]; }

答案 4 :(得分:0)

也可以是“duh”答案,但如果你在IB中创建了textView,你还记得连接插座吗?

相关问题