Вызывать функцию, когда пользователь нажимает ввод в NSSearchField? - PullRequest
5 голосов
/ 06 февраля 2011

Я удивлен, что не могу найти ответ на эту простую задачу.Я просто хочу, чтобы пользователь набрал текст, нажмите клавишу ввода, и приложение узнало, что он / она набрал.Как бы я это сделал?

1 Ответ

16 голосов
/ 06 февраля 2011

NSSearchField поддерживает механизм действия цели, поэтому просто подключите его к цели / действию. Например, предположим, что в вашем делегате приложения объявлено следующее действие:

- (IBAction)searchAnswer:(id)sender;

В Интерфейсном Разработчике, перетащите Ctrl-поле поиска в объект делегата приложения и выберите действие searchAnswer:. В его реализации используйте -stringValue для получения текста, введенного пользователем в поле поиска, например,

- (IBAction)searchAnswer:(id)sender {
    NSLog(@"search answer: %@", [searchField stringValue]);
}

Обратите внимание, что по умолчанию поле поиска отправляет действие, когда пользователь также приостанавливает / прекращает набирать текст. Если вы хотите, чтобы действие отправлялось только тогда, когда пользователь вводит Enter, установите флажок Sends Whole Search String в окне инспектора атрибутов поля поиска.

...