我有一段可以在Swift 2中使用的代码,我尝试使用Xcode将代码更新为最新版本,并修复了除两个问题以外的所有内容。
我有这个代码:
let loginvc: LoginVC = self.storyboard?.instantiateViewController(withIdentifier: "LoginVC") as! LoginVC NotificationCenter.defaultCenter().addObserver(self, selector: #selector(LoginViewController.keyboardWillShow(_:)), name: UIKeyboardWillShowNotification, object: nil) NotificationCenter.defaultCenter().addObserver(self, selector: #selector(LoginViewController.keyboardWillHide(_:)), name: UIKeyboardWillHideNotification, object: nil)
与此配对:
func keyboardWillShow(notification: NSNotification) { constraint.constant = -100 UIView.animate(withDuration: 0.3) { self.view.layoutIfNeeded() } } func keyboardWillHide(notification: NSNotification) { constraint.constant = 25 UIView.animate(withDuration: 0.3) { self.view.layoutIfNeeded() } }
在第一部分,我现在得到一个错误提示
类型“ LoginViewController”没有成员“ keyboardWillShow / Hide”
我不明白为什么它没有看到下面的方法。
有人知道这个问题的解决方案吗?
查阅更新的《Swift编程语言》书。您正在寻找1027和1028页。应该是这样的:
func keyboardWillHide(_ notification: NSNotification) {…
请注意上面的其他下划线。也:
#selector(LoginViewController.keyboardWillHide(_:))
您可能还需要添加@objc(keyboardWillHideWithNotification:)到课程中。
@objc(keyboardWillHideWithNotification:)