2011-02-06 7 views

ответ

16

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

- (IBAction)searchAnswer:(id)sender; 

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

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

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

+0

Спасибо! Некоторые вещи просто слишком понятны, я думаю ... – Flafla2

+3

@ Flafla2: Цель/действие на более высоком уровне, чем события клавиш или мыши. Поле может отправлять свое действие, даже если у пользователя нет клавиши ввода или вообще нет клавиатуры. Кнопка может отправить свое действие, даже если у пользователя нет мыши. Использование target/action означает, что вы можете получить действие независимо от того, какие интерфейсные устройства у пользователя есть или нет. –