黒毛和牛モモバラ切り落し100g298円

iPhoneアプリを作ってます。リリースノートとかごにょごにょとか用ブログです。

UITextInput protocolのpositionFromPosition:を顔文字を含むUITextFieldに適用するとnilが戻ってくる場合がある

タイトルの通りなのですが、positionFromPostion:を一部の顔文字を含むUITextFieldに適用するとnilが返ってきます。例えば"キタ━━━━(゚∀゚)━━━━ !!!!!"などでこの現象が発生します。

StackOverflowに答えが書いてましたが、4バイト文字を含むとダメみたいです。

uitextfield positionFromPosition:offset not working emojis

今回UITextFieldのテキスト全部を選択した状態にしたかったのでselectAll:で回避できましたが、一部のテキストをプログラムで選択状態にしたい場合は、StackOverflowのやり方をいじくってUITextRangeオブジェクトを実体化すれば回避できると思います。