определить отправителя controlTextDidEndEditing - PullRequest
2 голосов
/ 11 декабря 2011

У меня есть представление с тремя NSTextFields, подключенными к контроллеру представления, который действует как делегат для всех трех из них.

Я успешно реализовал controlTextDidEndEditing для перехвата текста, введенного пользователем, и изменения свойства вмоя модельЭтот метод уникален в делегате, и все три текстовых поля запускают его.Вопрос в том, как определить, кто из них отправил уведомление?Я могу получить NSTextView из ключа «NSFieldEditor» уведомления, но это не говорит мне, какое это.Вначале я думал об использовании заполнителя NSTextField, но метод возвращает мне NSTextView, который, кажется, не имеет свойства заполнителя.

Есть идеи?

1 Ответ

8 голосов
/ 11 декабря 2011

Вы сможете получить ссылку на NSTextField через [notification object]. Если все три ваших NSTextFields доступны как делегаты, легко проверить, какое из них вызвало событие. Как это:

- (void)controlTextDidEndEditing:(NSNotification *)aNotification {
    NSTextField* textField = (NSTextField *)[aNotification object];
    if (textField == textField1) {
       // textField1 triggered the event
    } else if (textField == textField2) {
       ...
    } else if (textField == textField3) {
       ...
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...