在 iPhone 5 和 iPhone5 秒内无法关闭键盘

Can't dismiss keyboard for iPhone 5 and iPhone5s

我正在尝试以编程方式关闭屏幕键盘,我的代码如下

override func viewDidLoad() {
    NSNotificationCenter.defaultCenter().addObserver(self, selector: Selector("keyboardWillShow:"), name:UIKeyboardWillShowNotification, object: nil);
    NSNotificationCenter.defaultCenter().addObserver(self, selector: Selector("keyboardWillHide:"), name:UIKeyboardWillHideNotification, object: nil);
}

func keyboardWillShow(notification: NSNotification) {
    var info = notification.userInfo!
    let keyboardFrame: CGRect = (info[UIKeyboardFrameEndUserInfoKey] as! NSValue).CGRectValue()
    UIView.animateWithDuration(0.1, animations: { () -> Void in
        self.Bottomspace.constant = keyboardFrame.size.height
    })
}

func keyboardWillHide(notification: NSNotification){
    self.Bottomspace.constant = 0
}

它适用于 iPhone 6 和 iPad,但不适用于 iPhone 5 和 iPhone 5s,有什么建议吗?

试试这个:

 // Dismiss Keyboard when user touch screen
    override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
        self.view.endEditing(true)
    }

如果有效请告诉我!

将 UITextFieldDelegate 添加到 class 声明:

class ViewController: UIViewController, UITextFieldDelegate

连接文本字段或以编程方式编写

@IBOutlet weak var userText: UITextField!

将您的视图控制器设置为视图中的文本字段委托已加载:

override func viewDidLoad() {
super.viewDidLoad()
self.userText.delegate = self
}

添加此代表

func textFieldShouldReturn(userText: UITextField!) -> Bool {
yourtextfield.resignFirstResponder()
return true;
}