フィールドが空の場合でも、ユーザーが UITextField でバックスペース キーを押したときに通知を受け取る方法はありますか?
ユーザーが空のフィールドでバックスペースを使用したときに、いくつかのコードをトリガーできるようにしたいと考えています。
フィールドが空の場合でも、ユーザーが UITextField でバックスペース キーを押したときに通知を受け取る方法はありますか?
ユーザーが空のフィールドでバックスペースを使用したときに、いくつかのコードをトリガーできるようにしたいと考えています。
テキストが削除されたときではなく、バックスペース キーが押されたときを検出する必要があるため、実装以外にかなり多くのことを行う必要がありますUITextFieldDelegate
。
すべてのメソッドをプライベート クラスに転送する方法については、このブログ投稿をお読みください。ライターは、これらのイベントを検出するために、実行時に動的にサブクラス化します。UITextField
UIKeyInput
UIFieldEditor
UIFieldEditor
これがあなたを正しい方向に向けてくれることを願っています!
あなたが望むものを手に入れるためのテクニックを考えることはできますが、それには少しコードが必要です。本質的に、文字列の先頭には常に単一の Unicode「スペース」文字を保持します。私は本を持っていませんが、使用できる非常に薄いスペース文字があります。
ほとんどのコードをここに配置します。
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
[[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(keyPressed:) name: UITextFieldTextDidChangeNotification object: nil];
これは、ユーザーがキーを押すたびに通知を受ける方法です。次に、どのキーが押されたかを把握する必要があります(通知ではプロパティだと思います)。
または、テキストフィールドデリゲート関数を使用できます
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
どのキーが押されたかを知るには