日記アプリでUITextViewを編集可能なモードか、編集できないモードにするか切り替える処理を実装したのですが、
「isEditable」をfalseにしてもUITextViewをタップするとキーボードのinputAccessoryView(キーボードの上にコードで追加したカメラアイコン)が表示されてしまいまいました。
今回はこの現象の対処法について。
UITextViewの「isEditable」について
UITextViewで編集可能か編集不可能かを切り替える場合、「isEditable」を使用すると思うのですが、
今回の場合、「isEditable」をfalseにすると、キーボード自体は表示されませんが、キーボードに追加したinputAccessoryViewが表示される状態(上の画像の状態)になります。
この現象を解決する方法を調べてみました。
UITextViewで「isEditable」をfalseにしてもキーボードやinputAccessoryViewが表示されてしまう場合の対処法
下記の記事が参考になりました。
こちらの記事によると、「isEditable」と「isSelectable」をfalseにする必要があるとのこと。
試しに「isEditable」と「isSelectable」をfalseにしてみたところ、キーボードのinputAccessoryViewが表示されなくなりました。
self.InputTextView.isEditable = false self.InputTextView.isSelectable = false
おそらく、「isEditable」をfalseにするだけだと、編集不可だけど選択できる状態だからキーボードが立ち上がってしまう状態になってしまうと思われます。
「isSelectable」もfalseにして選択不可の状態にすればキーボードも反応しなくなるってことなんだと思われます。