0

UITextViewで特定の文字のみを許可するには?

英字と数字とアラビア文字のみを許可したい。

私は多くの解決策を見つけましたが、UITextViewではなくUITextFieldの場合です!

4

1 に答える 1

2

( docs )のtextView:shouldChangeTextInRange:replacementText:メソッドを使用できます。UITextViewDelegate

テキスト ビューは、ユーザーが新しい文字を入力するか、既存の文字を削除するたびに、このメソッドを呼び出します。このメソッドの実装はオプションです。このメソッドを使用して、テキスト ビュー ストレージにコミットされる前にテキストを置き換えることができます。たとえば、スペル チェッカーはこのメソッドを使用して、スペル ミスの単語を正しいスペルに置き換える場合があります。

replacementTextパラメータに不正な文字が含まれていないかどうかを確認する必要があります。その場合NO、テキストが挿入されないように戻ることができます。これにより、複数の文字のテキストが挿入され、すべての文字が許可されていない場合に問題が発生する可能性があります: 挿入を許可する (不正な文字を含む) か、挿入を防止する (許可された文字を含む)?


textViewDidChange:これは、メソッド ( docs )が必要であることを意味します。

テキスト ビューは、ユーザーが開始したテキストの変更に応答して、このメソッドを呼び出します。このメソッドは、プログラムによって開始された変更に応じて呼び出されることはありません。

このメソッドが呼び出されると、の値を確認して、UITextView後で不正な文字を削除できます。


両方の方法を使用するのが最善だと思います。最初のものは、ユーザーが入力しているときに最高のエクスペリエンスを提供します (最初に表示されて後で削除されるのではなく、文字はまったく表示されません)。2 番目の方法では、たとえばテキストが貼り付けられた場合に、不正な文字が確実に削除されるようにします。

于 2012-05-28T12:26:10.927 に答える