2011-02-06 13 views

答えて

16

NSSearchFieldは、アクションターゲットメカニズムをサポートしているため、ターゲット/アクションにフックするだけです。

Interface Builderで
- (IBAction)searchAnswer:(id)sender; 

は、アプリケーションデリゲートオブジェクトに検索フィールドをCTRL-ドラッグしsearchAnswer:アクションを選択します。たとえば、次のアクションがアプリケーションデリゲートで宣言されたとします。その実装では、ユーザによって入力されたテキストを検索フィールドに取得するために-stringValueを使用します。

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

ユーザーが入力を一時停止または停止すると、デフォルトで検索フィールドがアクションを送信することに注意してください。ユーザーがEnterを入力したときにのみアクションを送信する場合は、検索フィールドの属性インスペクタウィンドウでSends Whole Search Stringチェックボックスを選択します。

+0

ありがとうございます!いくつかのことを理解するのは単純すぎると思います... – Flafla2

+3

@ Flafla2:ターゲット/アクションは、キーイベントやマウスイベントよりも上位です。ユーザーがEnterキーを持っていない場合でも、まったくキーボードがない場合でも、フィールドはそのアクションを送信できます。ユーザーがマウスを持っていなくても、ボタンはそのアクションを送信することができます。ターゲット/アクションを使用すると、ユーザーが使用しているインターフェースデバイスとは関係なく、アクションを受け取ることができます。 –