2017-02-28 16 views
-1

は私が初心者だと私は、ユーザーが警告ボックスのテキストフィールドに12300-1141090-7のようなものを入力します。 私は12345のような最初の5文字を​​入力してから ' - '、次に7文字を1234567してから ' - 'を1文字1、まとめて12345-1234567-1を入力したい 私はちょうどテキストフィールドチェックのヘルプが必要Swift 3.0でIDカード番号のみを取得するようにUITextFieldを制限する方法は?

let alert = UIAlertController(title: "Personal Info!", 
           message: "Required CNIC for Verfication", 
           preferredStyle: .alert) 

let saveAction = UIAlertAction(title: "OK", style: .default) { 
    [unowned self] action in 

    guard let textField = alert.textFields?.first, 
     let nameToSave = textField.text else { 
      return 
    } 
} 
+0

「 - 」手動または自動テキストフィールドに?ダッシュを決め打ちし、ユーザー残っている場合、それはユーザにとってより明確になりますので –

+0

それは最高の数字だけを入力する必要があります。 – Bilal

+0

checkout私の答え。 –

答えて

0

あなたの質問のために複数のソリューションがあります。 ソル1:useerは、任意の文字、他の、その後の数字を入力することはできませんキーボードの種類の数を確認します。

ソル2:文字は、ユーザーが入力したかどうかを使用するテキストフィールドのデリゲートメソッドpublic func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Boolチェックはあなたがfalseを返す他にtrueを返し、その後たい文字です。返り値falseの文字はテキストフィールドには表示されず、無視されます

+0

私は12345のように最初の5文字を​​入力してから ' - 'を7文字まで入力したい1234567次に ' - 'と1文字1をまとめて入力したい12345-1234567-1 – Bilal

+0

コードで ' - ' 。同じ代行メソッドを使用してtextfield.textの長さを参照し、countが5,13の場合は文字列に ' - 'を追加します。 – sschunara

2

まず、キーボードタイプを数字とし、それ以外の文字を入力できないようにします。 このようにしてUITextFieldDelegateメソッドを実装します。

func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool { 
    var txtAfterUpdate:NSString = textField.text! as NSString 
    txtAfterUpdate = txtAfterUpdate.stringByReplacingCharactersInRange(range, withString: string) 
    let updatedString = txtAfterUpdate as String 
    //for max length... 
    if updatedString.characters.count > 15 { 
     return false 
    } 
    if updatedString.characters.count == 6 && string != "" { 
     textField.text = textField.text! + "-" 
     return true 
    } else if updatedString.characters.count == 14 && string != ""{ 
     textField.text = textField.text! + "-" 
     return true 
    } 

    return true 
} 

私はあなたを助けてくれることを願っています。

入力したい
関連する問題