Нет событий, таких как «Редактирование изменилось» для NSTextField? - PullRequest
7 голосов
/ 28 февраля 2010

Когда я разрабатывал для iPhone, у меня было несколько событий на ощупь, что может быть правдой для кнопки. (например, редактирование изменилось, редактирование завершилось ...)

Теперь, когда я разрабатываю для Mac OSX, я хочу, чтобы мое приложение распознавало несколько событий в NSTextField.

Как это сделать? Есть ли альтернатива для событий?

Спасибо!

РЕДАКТИРОВАТЬ: делегаты могут быть ключом?

1 Ответ

25 голосов
/ 01 марта 2010

Вам необходимо установить объект в качестве делегата вашего NSTextField. Поскольку NSTextField является подклассом NSControl, он вызовет метод -controlTextDidChange: для вашего объекта, если вы его реализуете.

@interface MyObject : NSObject
{
    IBOutlet NSTextField* textField;
}
@end

@implementation MyObject
- (void)awakeFromNib
{
    [textField setDelegate:self];
}

- (void)controlTextDidChange:(NSNotification *)notification
{
    if([notification object] == textField)
    {
        NSLog(@"The contents of the text field changed");
    }
}
@end
...