我肯定做了一些根本错误的事情,我的UITextViewDelegate实现方法没有触发。我有一个UITextView,它是一个UITableCellView的子视图,并且委托没有被调用。
- (void)textViewDidBeginEditing:(UITextView *)textView {
NSLog(@"textViewDidBeginEditing");
// never called...
}
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text {
NSLog(@"shouldChangeTextInRange");
// never called...
}有什么建议吗?我不知道这是否重要,但是这个协议在我的@interface声明中有明确的命名。
@interface DetailViewController () <UITextViewDelgate, ..., ....>谢谢!
发布于 2012-09-28 02:30:04
您应该在xib文件中添加textViewObj.delegate = self或为该文本视图属性提供委托连接,然后它应该可以工作并触发UITextView的所有委托方法。
发布于 2016-05-20 00:39:29
根据我的经验,对此有几点建议:
1)检查您使用的是UITextField还是UITextView。
2)根据您使用的文本字段的类型,将以下声明添加到您的接口声明中
@interface MyInterface : UIViewController<UITextFieldDelegate>
or
@interface MyInterface : UIViewController<UITextViewDelegate>3)将您的控制器注册为文本字段的委托:
[myTextField setDelegate:self];4)覆盖所需的方法,该方法
-(void)textFieldDidBeginEditing:(UITextField *)textField
or
- (void)textViewDidBeginEditing:(UITextView *)textView;就我的情况而言。
https://stackoverflow.com/questions/12626938
复制相似问题