您的位置:首页 > 移动开发 > Swift

swift在通知时的变化

2017-02-11 20:52 197 查看
我使用的是 ios开发指南:从零基础到app stroe上架(第3版)教材

现在已经步入了ios10时代,xcode也已经更新到8.2了。

我在使用课本中的代码的时候,发现其无法正常编译通过。

3.4节

override func viewWillAppear(animated: Bool) {
super.viewWillAppear(animated)
//注册键盘出现通知
NSNotificationCenter.defaultCenter().addObserver(self, selector: "keyboardDidShow:", name: UIKeyboardDidShowNotification, object: nil)
//注册键盘隐藏通知
NSNotificationCenter.defaultCenter().addObserver(self, selector: "keyboardDidHide:", name: UIKeyboardDidHideNotification, object: nil)

}

override func viewWillDisappear(animated: Bool) {
super.viewWillDisappear(animated)
//解除键盘出现通知
NSNotificationCenter.defaultCenter().removeObserver(self, name: UIKeyboardDidShowNotification, object: nil)
//解除键盘隐藏通知
NSNotificationCenter.defaultCenter().removeObserver(self, name: UIKeyboardDidHideNotification, object: nil)
}

func keyboardDidShow(notification: NSNotification) {
NSLog("键盘打开")
}

func keyboardDidHide(notification: NSNotification) {
NSLog("键盘关闭")
}


导入工程后,被xcode修改为

override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
//注册键盘出现通知
NotificationCenter.default.addObserver(self, selector: #selector(ViewController.keyboardDidShow(_:)), name: NSNotification.Name.UIKeyboardDidShow, object: nil)
//注册键盘隐藏通知
NotificationCenter.default.addObserver(self, selector: #selector(ViewController.keyboardDidHide(_:)), name: NSNotification.Name.UIKeyboardDidHide, object: nil)

}

override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
//解除键盘出现通知
NotificationCenter.default.removeObserver(self, name: NSNotification.Name.UIKeyboardDidShow, object: nil)
//解除键盘隐藏通知
NotificationCenter.default.removeObserver(self, name: NSNotification.Name.UIKeyboardDidHide, object: nil)
}

func keyboardDidShow(_ notification: Notification) {
NSLog("键盘打开")
}

func keyboardDidHide(_ notification: Notification) {
NSLog("键盘关闭")
}


此前我在写NSNotificationCenter时,xcode提示我说这个方法名已经被修改为NotificationCenter
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ios