2017-02-04 93 views
0

当我打开应用程序并单击UITextField时,它在第一次点击时立即被解散。它不会在第一次之后被点击,而不会在视图之外点击。Swift:UITextField在第一次点击时被立即解雇

我用这个回答:Close iOS Keyboard by touching anywhere using Swift为代码来关闭textField区域以外的区域时被点击。代码:

class SettingsViewController: UIViewController, UITextFieldDelegate { 

@IBOutlet weak var textField: UITextField! 

override func viewDidLoad() { 
    super.viewDidLoad() 

    textField.delegate = self 
} 


override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) { 
    view.endEditing(true) 
} 


func textFieldShouldReturn(_ textField: UITextField) -> Bool { 

    textField.resignFirstResponder() 
    return false 
} 
+0

您的预期 –

+0

输出我期望的文本框为不自动当它解雇首先被挖掘。我希望textField在用户点击屏幕上的其他位置时被解散。 –

+0

您可以添加您的视图控制器代码 –

回答

0

想从你的问题,你想什么时候有人视图,而不是文本字段水龙头关闭该键盘。您可以覆盖触摸开始您的视图控制器为此于:

import UIKit 

class ViewController: UIViewController { 

    // MARK: - Properties 
    @IBOutlet weak var textField: UITextField! 

    // MARK: - Actions 
    // will resign any first repsonder on this view contorller 
    override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) { 
     view.endEditing(true) 
    } 

    // MARK: - Lifecycle 
    override func viewDidLoad() { 
     textField.delegate = self 
    } 

} 

extension ViewController: UITextFieldDelegate { 
    func textFieldShouldReturn(_ textField: UITextField) -> Bool { 
     textField.resignFirstResponder() 
     return false 
    } 
} 

,而不必担心水龙头等

+0

对不起,如果它不清楚,我的问题是textField被第一次自动解散,它被轻敲和键盘打开。这个问题似乎没有发生在第一次点击之后。 –

+0

你能帮我解决'textField自动解雇' - 我推断这意味着键盘隐藏? –

+0

正确,当点击textField时,键盘会出现一瞬间,然后自动隐藏/取消解除。 –

相关问题