首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >未调用UITextViewDelegate方法(UITableViewCell中的UITextView)

未调用UITextViewDelegate方法(UITableViewCell中的UITextView)
EN

Stack Overflow用户
提问于 2012-09-28 01:29:05
回答 2查看 15.7K关注 0票数 12

我肯定做了一些根本错误的事情,我的UITextViewDelegate实现方法没有触发。我有一个UITextView,它是一个UITableCellView的子视图,并且委托没有被调用。

代码语言:javascript
复制
- (void)textViewDidBeginEditing:(UITextView *)textView {

    NSLog(@"textViewDidBeginEditing");
    // never called...
}

- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text {

    NSLog(@"shouldChangeTextInRange");  
    // never called... 
}

有什么建议吗?我不知道这是否重要,但是这个协议在我的@interface声明中有明确的命名。

代码语言:javascript
复制
@interface DetailViewController () <UITextViewDelgate, ..., ....>

谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-09-28 02:30:04

您应该在xib文件中添加textViewObj.delegate = self或为该文本视图属性提供委托连接,然后它应该可以工作并触发UITextView的所有委托方法。

票数 30
EN

Stack Overflow用户

发布于 2016-05-20 00:39:29

根据我的经验,对此有几点建议:

1)检查您使用的是UITextField还是UITextView。

2)根据您使用的文本字段的类型,将以下声明添加到您的接口声明中

代码语言:javascript
复制
@interface MyInterface : UIViewController<UITextFieldDelegate>
                      or
@interface MyInterface : UIViewController<UITextViewDelegate>

3)将您的控制器注册为文本字段的委托:

代码语言:javascript
复制
[myTextField setDelegate:self];

4)覆盖所需的方法,该方法

代码语言:javascript
复制
 -(void)textFieldDidBeginEditing:(UITextField *)textField
              or
 - (void)textViewDidBeginEditing:(UITextView *)textView;

就我的情况而言。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12626938

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档