2016-07-13 14 views
1

ユーザは、a-z、A-Z、および0-9だけを入力する必要があります。 UIKeyboardType.ASCIICapableキーボードレイアウトをユーザーに示します。非zA-Z以外のすべての文字列を削除します。

キーボードで文字列を入力した後、非z、A-Z、0-9の文字列をフィルタリングするにはどうすればよいですか。

どうすればこの問題を解決できますか?私はあなたの受け入れセットの反転が存在している場合は、UITextField

func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool { 
     let set: NSCharacterSet = NSCharacterSet.alphanumericCharacterSet().invertedSet 

     if string.rangeOfCharacterFromSet(set) != nil { 
     return false 
     } 
     return true 
    } 
+3

**ユーザーが文字列を入力している間にフィルタリングする方がユーザーエクスペリエンスが優れていませんか? – vadian

+0

@vadianはいもちろん。私は迅速かつアプリ開発の学習プロセスで、ユーザーが文字を入力している間にこの文字をどのようにフィルタリングできるかわからない – smartcoderx

+0

Kumarの答えを見てください。 – vadian

答えて

1

を使用しています:

if yourtextfield.text!.rangeOfCharacterFromSet(letters.invertedSet) != nil { 
    print("invalid") 
} 

手紙をすべきです数字を含める場合は、おそらくalphanumericCharacterSet()になります。

+0

多くのありがとう。これは "NSCharacterSet.alphanumericCharacterSet()。invertedSet"の文字リストと同じですか? – smartcoderx

+0

はい、回答を編集してください。 –

+0

@KumarKL逆アセンブルしてください。invertedSet> invertedSet>!= nil> falseを返します。実際には、単純に 'return string.rangeOfCharacterFromSet(set)== nil'で、反転英数字セットを使用します。 – vadian

0

チェックのデリゲートメソッドを使用する必要があるXcodeの7と迅速2.

+0

これは動作します。 != nilの場合、この無効な文字を削除できますか? – smartcoderx

+0

あなたはプリント(「無効」)について話していますか? –

関連する問題