我有一个scrollView,当我显示键盘时,我想向上滚动.
键盘显示时我有这个错误的崩溃:
2014-09-29 14:48:50.738 swrd [1563:472888] – [swrd.EditPhotoViewController keyboardWasShown]:无法识别的选择器发送到实例0x14ed36640
这是我的代码,怎么了?
func registerForKeyboardNotifications ()-> Void { NSNotificationCenter.defaultCenter().addObserver(self,selector: "keyboardWasShown",name: UIKeyboardDidShowNotification,object: nil) NSNotificationCenter.defaultCenter().addObserver(self,selector: "keyboardWillBeHidden",name: UIKeyboardWillHideNotification,object: nil) } func deregisterFromKeyboardNotifications () -> Void { let center: NSNotificationCenter = NSNotificationCenter.defaultCenter() center.removeObserver(self,name: UIKeyboardDidHideNotification,object: nil) center.removeObserver(self,object: nil) } func keyboardWasShown (notification: NSNotification) { let info : NSDictionary = notification.userInfo! let keyboardSize = info.objectForKey(UIKeyboardFrameBeginUserInfoKey)?.frame let insets: UIEdgeInsets = UIEdgeInsetsMake(self.scrollView.contentInset.top,keyboardSize!.height,0) self.scrollView.contentInset = insets self.scrollView.scrollIndicatorInsets = insets self.scrollView.contentOffset = CGPointMake(self.scrollView.contentOffset.x,self.scrollView.contentOffset.y + keyboardSize!.height) } func keyboardWillBeHidden (notification: NSNotification) { let info : NSDictionary = notification.userInfo! let keyboardSize = info.objectForKey(UIKeyboardFrameBeginUserInfoKey)?.frame let insets: UIEdgeInsets = UIEdgeInsetsMake(self.scrollView.contentInset.top,0) self.scrollView.contentInset = insets self.scrollView.scrollIndicatorInsets = insets } override func viewWillAppear(animated: Bool) { super.viewWillAppear(true) self.registerForKeyboardNotifications() } override func viewWillDisappear(animated: Bool) { super.viewWillDisappear(true) self.deregisterFromKeyboardNotifications() }
解决方法
在你的代码中,keyboardWasShown和keyboardWasHidden都有一个参数,即NSNotification.您需要使用冒号在addObserver中终止您的选择器,以便它被传递.即,键盘WasShown和keyboardWasShown:是不同的选择器.
NSNotificationCenter.defaultCenter().addObserver(self,selector: "keyboardWasShown:",object: nil)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。