LoginSignup
1
1

More than 5 years have passed since last update.

UITextFieldのshouldChangeCharactersInRange:replacementString:は使えない子かもしれない

Posted at

shouldChangeCharactersInRange:replacementString:の中でUITextFieldに入力された文字列を取得しようとして、だいぶ手こずった。

英数キーボードで入力した場合は問題なさそう。
日本語キーボー度で入力した場合は文字列の追加については問題なさそうなんだけど、未確定の状態でdeleteしたらUITextFieldに文字列が残っていてもUITextFieldのlengthが0と判定されるっぽい。

ひどい。

iOS で文字数制限つきのテキストフィールドをちゃんと作るのは難しいという話を参考にして、UITextFieldTextDidChangeNotificationを使う方法で実装したところ、UITextFieldに入力された文字列を取得でき、確定の状態でdeleteしたときも残された文字列を正しく取得できた。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1