私はこの簡単な作業の答えを見つけることができないことに驚いています。私は、ユーザーがテキストを入力し、Enterキーを押し、アプリケーションに入力した内容を知らせるようにします。どうすればいい?ユーザーがNSSearchFieldでEnterキーを押したときに関数を呼び出しますか?
5
A
答えて
16
NSSearchField
は、アクションターゲットメカニズムをサポートしているため、ターゲット/アクションにフックするだけです。
- (IBAction)searchAnswer:(id)sender;
は、アプリケーションデリゲートオブジェクトに検索フィールドをCTRL-ドラッグしsearchAnswer:
アクションを選択します。たとえば、次のアクションがアプリケーションデリゲートで宣言されたとします。その実装では、ユーザによって入力されたテキストを検索フィールドに取得するために-stringValue
を使用します。
- (IBAction)searchAnswer:(id)sender {
NSLog(@"search answer: %@", [searchField stringValue]);
}
ユーザーが入力を一時停止または停止すると、デフォルトで検索フィールドがアクションを送信することに注意してください。ユーザーがEnterを入力したときにのみアクションを送信する場合は、検索フィールドの属性インスペクタウィンドウでSends Whole Search String
チェックボックスを選択します。
ありがとうございます!いくつかのことを理解するのは単純すぎると思います... – Flafla2
@ Flafla2:ターゲット/アクションは、キーイベントやマウスイベントよりも上位です。ユーザーがEnterキーを持っていない場合でも、まったくキーボードがない場合でも、フィールドはそのアクションを送信できます。ユーザーがマウスを持っていなくても、ボタンはそのアクションを送信することができます。ターゲット/アクションを使用すると、ユーザーが使用しているインターフェースデバイスとは関係なく、アクションを受け取ることができます。 –