2011-07-22 9 views
0

私はテキストボックスを持ち、何かが入力されるたびにそれを持っています。私は押されたキーをキャプチャして何らかのアクションを実行したい。このためには、キーボードイベントをキャプチャする必要があります。現在、私はkeyDown:関数をオーバーライドしようとしていますが、動作しません。ココアでキーボードイベントを処理する

どうすればいいですか?

+2

「いつもうまくいきません」ということは、クラッシュ?何も起こりません?キーはボックスに表示されますが、keyDownメッセージは表示されませんか?コードも役に立ちます。これはNSTextFieldかNSTextViewですか?イベント自体、あるいはキャラクターだけが本当に必要ですか? – Caleb

答えて

1

keyDownを上書きしないでください。テキストコントロールテキストが変更されたときに通知を登録します。以下は、NSTextFieldのために動作します:

// Listen for change events on fields 
[[NSNotificationCenter defaultCenter] addObserver:self 
             selector:@selector(valueChanged:) 
              name:@"NSControlTextDidChangeNotication" 
              object:textField ]; 

...

(void) valueChanged:(NSNotification*)notification { 
    // TODO -- look at the stringValue of your TextField 
} 
0

を、あなたのテキストフィールド内のデータを検証する必要がある場合は、これがフルに活用されます

- (void)controlTextDidChange:(NSNotification *)aNotification 

を使用することができます....

関連する問題