私はテキストボックスを持ち、何かが入力されるたびにそれを持っています。私は押されたキーをキャプチャして何らかのアクションを実行したい。このためには、キーボードイベントをキャプチャする必要があります。現在、私はkeyDown:
関数をオーバーライドしようとしていますが、動作しません。ココアでキーボードイベントを処理する
どうすればいいですか?
私はテキストボックスを持ち、何かが入力されるたびにそれを持っています。私は押されたキーをキャプチャして何らかのアクションを実行したい。このためには、キーボードイベントをキャプチャする必要があります。現在、私はkeyDown:
関数をオーバーライドしようとしていますが、動作しません。ココアでキーボードイベントを処理する
どうすればいいですか?
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
}
を、あなたのテキストフィールド内のデータを検証する必要がある場合は、これがフルに活用されます
- (void)controlTextDidChange:(NSNotification *)aNotification
を使用することができます....
「いつもうまくいきません」ということは、クラッシュ?何も起こりません?キーはボックスに表示されますが、keyDownメッセージは表示されませんか?コードも役に立ちます。これはNSTextFieldかNSTextViewですか?イベント自体、あるいはキャラクターだけが本当に必要ですか? – Caleb