2017-04-11 7 views
0

数字キーボードのユーザータイプ番号だけでなく、accessible viewのボタンもある特定のプログラムがあります。だから私がのキーボードを開いたままにしておきたい場合は、のアクセス可能なビューが開いていても動作します。数値キーボードは開いたままにしますが、すべてのボタンを無効にしますか?

たとえば、ビューに「A」と入力した場合、が開いている間に数字キーボードを無効にしたい場合は、「C」と入力してもう一度有効にします。

私はそれを無効にしてそれを開いたままにする方法を見つけることができませんでした。

+3

キーボードからの入力を受け入れたくない場合は、テキストフィールド代理メソッド 'shouldChangeCharactersInRange:replacementString:'を実装し、 'false'を返すことができます。キーボードはクリック可能なままですが、入力はあなたのロジックに基づいて伝播されません。 – Losiowaty

+0

本当にありがとう、私はこのトリックを知っています。間違いの余地がないときに、きれいなユーザーエクスペリエンスを作りたかったのです。もし私に選択がなければ、私はそれに行くでしょう。 – Curnelious

+2

唯一の他の方法は、独自のカスタムキーボードを作成し、結果を達成するためにプログラムすることです。たとえば、文字 "A"を入力すると、文字 "C"が入力されるまで、カスタムキーボードの数字キーが無効になるようにすることができます。これは無効にして有効にすることは簡単です。キーはキーボードのボタンです。 –

答えて

0

Losiowatyがコメントで指摘したように、UITextViewDelegateという代理メソッドを実装してshouldChangeTextIn:replacementText:とし、falseと返す必要があります。そうすれば、タップはキーボードで認識されますが、ボタンは技術的に無効になります。

func textView(_ textView: UITextView, shouldChangeTextIn range: NSRange, replacementText text: String) -> Bool { 
    //other actions before returning, for e. g. informing the user that the keyboard is disabled 

    return false 
} 
関連する問題