NSTextDidEndEditingNotification вызывает ошибку - PullRequest
1 голос
/ 11 июля 2009

У меня есть TextViewCell с текстовым полем, которое я использую в табличном представлении. Мне нужен текущий контроллер представления, чтобы быть делегатом. Ничего не помогло, и в своих поисках я нашел приведенный ниже код, который я реализовал в своем методе initWithNib:

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

Но я получаю сообщение об ошибке NSTextDidEndEditingNotification Undeclared (первое использование в функции)

Почему я получаю эту ошибку? Как мне это исправить?

Спасибо

Ответы [ 2 ]

2 голосов
/ 11 июля 2009

Хммм ... Я не думаю, что вы делаете это правильно. Прежде всего, вам нужно, чтобы ваш контроллер представления принял протокол UITextFieldDelegate в вашем заголовочном файле.

@interface MyViewController : UIViewController <UITextFieldDelegate>

Далее вы хотите использовать следующий метод в вашем файле реализации:

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

Если вы создаете свое приложение с помощью Interface Builder, вы можете установить свой контроллер представления в качестве делегата, перетащив соединение из выхода делегата на владельца файла в вашей XIB.

В противном случае вы просто будете использовать следующий код:

myTextField.delegate = self;

Это должно сделать это!

2 голосов
/ 11 июля 2009

Уведомление, которое вы используете, принадлежит NSTextField, который принадлежит старшему брату Cocoa Touch, настольному Cocoa. То, что вы хотите, это UITextFieldTextDidEndEditingNotification, который является уведомлением, отправленным UITextField, текстовым элементом управления на iPhone. Документы здесь .

НТН.

...