2009-07-10 147 views
1

我有一个TextViewCell与我在tableview中使用的文本字段。我需要当前的视图控制器作为委托。没有工作,在我的搜索,我发现下面的代码,我在我的initWithNib方法来实现:NSTextDidEndEditingNotification导致错误

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

,但我得到的错误NSTextDidEndEditingNotification未声明(第一次在函数中使用)

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

感谢

回答

2

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

HTH。

+0

duhhh ....我应该抓住那个。谢谢 – Xcoder 2009-07-10 22:21:03

2

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

@interface MyViewController : UIViewController <UITextFieldDelegate> 

接下来,你要想要使用下面的方法在您的实现文件:

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

如果您正在使用Interface Builder中构建应用程序,您可以将您的视图控制器通过委托将连接从代理插座拖到您的XIB中的文件所有者。

否则,你只需要使用下面的代码:

myTextField.delegate = self; 

应该这样做!

+0

是的,我起初尝试过,因为自定义单元而出现问题,最后回到那个问题。不过,我仍然好奇为什么通知不起作用,它给了我那个错误。 – Xcoder 2009-07-10 22:20:16