NSTextDidEndEditingNotification导致错误

时间:2009-07-10 21:08:53

标签: iphone cocoa-touch delegates notifications

我有一个带有文本字段的TextViewCell,我在tableview中使用它。我需要当前的视图控制器作为委托。没有任何效果,在我的搜索中,我找到了下面的代码,我在initWithNib方法中实现了这个代码:

        NSNotificationCenter *nc = [NSNotificationCenter defaultCenter];
    [nc addObserver:self selector:@selector(textDidEndEditing:) name:NSTextDidEndEditingNotification object:tableView];

但是我收到错误NSTextDidEndEditingNotification Undeclared(首次使用函数)

为什么我会收到该错误?我该如何解决这个问题?

由于

2 个答案:

答案 0 :(得分:2)

您正在使用的通知属于NSTextField,它属于Cocoa Touch的大哥,桌面Cocoa。你想要的是UITextFieldTextDidEndEditingNotification,它是由iPhone上的文本控件UITextField发出的通知。文档为here

HTH。

答案 1 :(得分:2)

嗯......我不认为你是正确的方式。首先,您应该让视图控制器在头文件中采用UITextFieldDelegate协议。

@interface MyViewController : UIViewController <UITextFieldDelegate>

接下来,您希望在实现文件中使用以下方法:

- (void)textFieldDidEndEditing:(UITextField *)textField
{
    //My text field has been edited!
}

如果使用Interface Builder构建应用程序,可以将视图控制器设置为委托,方法是将代理插座中的连接拖到XIB中的文件所有者。

否则,您只需使用以下代码:

myTextField.delegate = self;

应该这样做!