2016-08-12 4 views
1

「華氏」というテキストフィールドに整数値を入力すると、「変換」ボタンをアクティブにしようとしています。テキストフィールドに整数が入力されると、テキストフィールドをゲットして有効にするのに問題があります。ユーザーことが確実な場合は、代わりにテキストフィールドに整数がある場合、ボタンの有効/無効を切り替えることはできません

func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool { 
    let currentText = NSString(string: textField.text ?? "") 
    let newText = currentText.stringByReplacingCharactersInRange(range, withString: string) 

    convertButton.enabled = !newText.isEmpty 
    return true 
} 

enter image description here

:あなたはtextField(textField:shouldChangeCharactersInRange:replacementString:)UITextFieldDelegateからプロトコルを実装するとTextFieldは、任意のテキストが含まれているかどうかを確認することができます参照

override func viewDidLoad() { 
    super.viewDidLoad() 
    Fahrenheit.becomeFirstResponder() 
    Convert.enabled = false 
    Fahrenheit.delegate = self 
    Fahrenheit.keyboardType = .DecimalPad 

    if Int(Fahrenheit.text!) != nil{ 
     Convert.enabled = true 
    }else{ 
     Convert.enabled = false 

    } 

答えて

1

については、以下の私のコードを参照してください。テキストフィールドが最初のレスポンダである限り、ボタンを押さないでください。textFieldDidEndEditing(textField:)で上記のチェックを行うこともできます:

func textFieldDidEndEditing(textField: UITextField) { 
    convertButton.enabled = textField.text?.isEmpty ?? false 
} 

作成したtest projectで遊ぶことができます。

関連する問題