質問

このソリューションiPhoneキーボードイベントを受け取ります

通知センターを使用してキープレスイベントをキャプチャする方法を提供します。

[nsnotificationCenter defaultCenter] addobserver:self selector:@selector(keypressed :) name:uitextfieldtextdidchangenotificationオブジェクト:nil];

[nsnotificationCenter defaultCenter] addobserver:self selector:@selector(keypressed :) name:uitextviewtextdidchangenotificationオブジェクト:nil];

........

- (void)keypressed :( nsnotification*)通知{nslog([[notification object] text]); }

問題なく動作しますが、キーボードから押されているすべてのキーについて、キープレーション関数は3回呼び出されます。

これは普通ですか、それとも私は何か間違ったことをしていますか?

テオ

役に立ちましたか?

解決

通知は、キーに合わせて1回のみ表示される必要があります。少なくともそれは私がテストするときに得られるものです。私が考えることができる唯一のことはあなたが電話しているということです addObserver:selector:name:object: 3回。

おそらくあなたはいくつかのビューコントローラーでそれをしていて、電話するのを忘れています removeObserver:name:object:?

またはあなたは電話しています addObserver:selector:name:object: 何度か呼ばれる関数で? viewDidLoad 通常、このようなコードを配置するのに適した場所です。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top