shouldChangeCharactersInRange:replacementString:
の中でUITextFieldに入力された文字列を取得しようとして、だいぶ手こずった。
英数キーボードで入力した場合は問題なさそう。
日本語キーボー度で入力した場合は文字列の追加については問題なさそうなんだけど、未確定の状態でdeleteしたらUITextFieldに文字列が残っていてもUITextFieldのlengthが0と判定されるっぽい。
ひどい。
iOS で文字数制限つきのテキストフィールドをちゃんと作るのは難しいという話を参考にして、UITextFieldTextDidChangeNotification
を使う方法で実装したところ、UITextFieldに入力された文字列を取得でき、確定の状態でdeleteしたときも残された文字列を正しく取得できた。