iOS - NotificationCenter addObserver "UIMenuControllerWillHideMenu"

iOS - NotificationCenter addObserver "UIMenuControllerWillHideMenu"

我已经为 UIMenuControllerWillHideMenu 添加了通知观察器,但它不会通过通知中心调用选择器 added/associated。

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

找到了解决方案
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