2016-06-16 6 views
1

ヘルプme、plz! テキストフィールドを別のテキストフィールドに変更するときにキーボードを非表示にすることはできません。キーボードを隠すことができない

"ユーザー"テキストフィールドのポップアップピッカーをクリックし、 "パスワード"テキストフィールド、ポップアップキーボードをクリックしますが、 "ユーザー"をクリックするとキーボードを隠しません。唯一の1行が下にで追加

override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) { 
     userNameTextField.resignFirstResponder() 
     userPasswordTextField.resignFirstResponder() 

} 

func textFieldDidBeginEditing(textField: UITextField) { 

    if textField == userNameTextField { 
     pickerUser.hidden = false 
        print("userNameTextField") 

    } else { 
     pickerUser.hidden = true 
     print("@userPasswordTextField") 
    } 


} 

@IBAction func userNameTextFieldStartEdit(sender: AnyObject) { 

    userNameTextField.resignFirstResponder() 
    userPasswordTextField.resignFirstResponder() 
    pickerUser.hidden = false 
} 


func textFieldShouldReturn(textField: UITextField) -> Bool { 
    textField.resignFirstResponder() 
    return true 
} 

enter image description here

+0

これは正常な動作です - あなたがタップしたときテキストフィールドでは、最初のレスポンダーになり、キーボードが表示されます。ビュー自体(白い背景)にタップジェスチャー認識機能を追加し、そこから 'view.endEditing(true) 'を使用してキーボードを外してみてください – maxkonovalov

+1

私の答えを確認してください。 –

答えて

2

使用このコード、

func textFieldDidBeginEditing(textField: UITextField) { 

     if textField == userNameTextField { 
      pickerUser.hidden = false 
      print("userNameTextField") 
      self.view.endEditing(true) 

     } else { 
      pickerUser.hidden = true 
      print("@userPasswordTextField") 
     } 

    } 


    func textFieldShouldBeginEditing(textField: UITextField) -> Bool { 
     if(textField == userNameTextField) { 
      self.view.endEditing(true) 
      return true 
     } 
     return true 
    } 

が私のために働いて、期待してその有用

+0

ありがとうございました!それは動作しますが、まずユーザテキストフィールドをクリックしてキーボードを隠し、ユーザテキストフィールドのポップアップピッカーを2回クリックしてください – Anci

+0

okようこそ、何か問題はありますか?または何の問題も私の答えに刻みをかける –

+0

質問:2回目のクリックだけがキーボードをポップアップするのは普通ですか? – Anci

2

のTyr:

func textFieldDidBeginEditing(textField: UITextField) { 

    if textField == userNameTextField { 
     textField.resignFirstResponder()  // this line add 
     pickerUser.hidden = false 
       print("userNameTextField") 

    } else { 
     pickerUser.hidden = true 
     print("@userPasswordTextField") 
    } 


} 
+0

は動作しません..... – Anci

+0

このメソッド呼び出しをチェックしてください。このメソッドは、テキストフィールドデリゲートが設定されているとは限りません。 –

0

私はそれはあなたがあなたのキーボードを非表示に呼び出す必要があり、その関数だと思う:

func textFieldShouldReturn(textField: UITextField) -> Bool 
{ 
    textField.resignFirstResponder() 
    return true 
} 

の代わりにあなたのまた、

class ViewController: UIViewController, UITextFieldDelegate { 

(あなたは1つを持っていますか?)

+0

すべて同じ... – Anci

+0

UITextFieldDelegateはありますか? –

+0

はい、もちろんです。 – Anci

関連する問題