我已经为UIMenuControllerWillHideMenu添加了通知观察者,但是它没有调用添加/关联到通知中心的选择器。
UIMenuControllerWillHideMenu是UIMenuController的通知中心标识符,应该在UIMenuController隐藏时调用它。但不知怎么不起作用了。
下面是我尝试过的代码(Swift 3.x):
private func addMenuObserverNotification(){
NotificationCenter.default.addObserver(self, selector: #selector(self.menuControllerWillHideMenu), name: NSNotification.Name(rawValue: "UIMenuControllerWillHideMenu"), object: nil)
}
// This function should be called on 'UIMenuControllerWillHideMenu'
func menuControllerWillHideMenu() -> Void {
removeMenuObserverNotification()
}
private func removeMenuObserverNotification(){
NotificationCenter.default.removeObserver(self)
}找不出是怎么回事。
发布于 2017-09-07 18:42:17
通过将NSNotification.Name(rawValue: "UIMenuControllerWillHideMenu")替换为.UIMenuControllerWillHideMenu来找到解决方案
private func addMenuObserverNotification(){
NotificationCenter.default.addObserver(self, selector: #selector(self.menuControllerWillHideMenu), name: .UIMenuControllerWillHideMenu), object: nil)
}我错误地添加了它的初始化器NSNotification.Name(rawValue: "UIMenuControllerWillHideMenu"),这可能不需要NSNotificationName is typedef NSString,它直接允许使用.<value name>访问预定义的值
欲知更多详情:
https://stackoverflow.com/questions/46102665
复制相似问题