2009-07-10 144 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