1

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

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

但我收到错误 NSTextDidEndEditingNotification Undeclared (first use in function)

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

谢谢

4

2 回答 2

2

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

HTH。

于 2009-07-10T21:15:21.363 回答
2

嗯......我不认为你会以正确的方式解决这个问题。首先,你应该让你的视图控制器在你的头文件中采用 UITextFieldDelegate 协议。

@interface MyViewController : UIViewController <UITextFieldDelegate>

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

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

如果您正在使用 Interface Builder 构建应用程序,则可以通过将连接从委托出口拖到 XIB 中的文件所有者来将视图控制器设置为委托。

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

myTextField.delegate = self;

应该这样做!

于 2009-07-10T21:15:31.940 回答