【问题标题】:iOS - NotificationCenter addObserver "UIMenuControllerWillHideMenu"iOS - NotificationCenter addObserver "UIMenuControllerWillHideMenu"
【发布时间】:2018-02-16 13:33:19
【问题描述】:

我已经为UIMenuControllerWillHideMenu 添加了通知观察者,但它没有调用选择器添加/与通知中心关联。

UIMenuControllerWillHideMenuUIMenuController 的通知中心标识符,应该在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)
}

无法识别,出了什么问题。

【问题讨论】:

  • 仅供参考 - 将 NSNotification.Name(rawValue: "UIMenuControllerWillHideMenu") 替换为 .UIMenuControllerWillHideMenu
  • 我发现了错误。谢谢@rmaddy & wm.p1us
  • 发布一个正确的答案,描述您为解决该问题所做的工作,如果您认为这会对其他人有所帮助。否则,请删除您的问题。

标签: ios swift observers uimenucontroller notificationcenter


【解决方案1】:

找到解决方案,将NSNotification.Name(rawValue: "UIMenuControllerWillHideMenu") 替换为.UIMenuControllerWillHideMenu

private func addMenuObserverNotification(){
    NotificationCenter.default.addObserver(self, selector: #selector(self.menuControllerWillHideMenu), name: .UIMenuControllerWillHideMenu), object: nil)
}

我犯了一个错误,添加了它的初始化程序NSNotification.Name(rawValue: "UIMenuControllerWillHideMenu"),这可能不需要,因为NSNotificationNametypedef NSString,它直接允许使用.<value name> 访问预定义值

更多详情:
addObserver:selector:name:object:
NSNotificationName

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-04-05
    • 1970-01-01
    • 2012-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多