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

时间:2012-09-27 17:29:05

标签: iphone ios uitextview uitextviewdelegate

我必须做一些根本错误的事情,我的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, ..., ....>

谢谢!

2 个答案:

答案 0 :(得分:28)

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

答案 1 :(得分:4)

根据我的经验,对此提出了几点建议:

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

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

$("a[rel^='prettyPhoto']").prettyPhoto({
    overlay_gallery: false,
    show_title: false,
    hideflash: true,
    social_tools: "", 
    iframe_markup: "<iframe src='{path}' width='{width}' height='{height}' frameborder='no' allowfullscreen='true'></iframe>", 
    deeplinking: false
});

.....

<a href="https://www.youtube.com/watch?v=Vh0mGLpbIvI" rel="prettyPhoto"><img src="http://img.youtube.com/vi/Vh0mGLpbIvI/default.jpg"></a>

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

@interface MyInterface : UIViewController<UITextFieldDelegate>
                      or
@interface MyInterface : UIViewController<UITextViewDelegate>

4)覆盖

所需的方法
[myTextField setDelegate:self];

就我而言。