2017-09-07 3 views
0

Ich habe Benachrichtigung Beobachter für UIMenuControllerWillHideMenu hinzugefügt, aber es ruft nicht Selektor hinzugefügt/mit Benachrichtigungscenter zugeordnet.iOS - NotificationCenter addObserver "UIMenuControllerWillHideMenu"

UIMenuControllerWillHideMenu ist die Notification Center-ID für UIMenuController und sollte aufgerufen werden, wenn UIMenuController ausgeblendet wird. Aber irgendwie funktioniert es nicht.

Hier ist Code, den ich versucht habe (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) 
} 

konnte nicht erkennen, was falsch ist.

+2

FYI - Ersetzen Sie 'NSNotification.Name (rawValue:" UIMenuControllerWillHideMenu ")' mit nur '.UIMenuControllerWillHideMenu'. – rmaddy

+0

Ich habe den Fehler gefunden. danke @rmaddy & wm.p1us – Krunal

+0

Geben Sie eine korrekte Antwort an und beschreiben Sie, was Sie getan haben, um das Problem zu beheben, wenn Sie glauben, dass es anderen hilft. Andernfalls löschen Sie Ihre Frage. – rmaddy

Antwort

0

eine Lösung gefunden, indem NSNotification.Name(rawValue: "UIMenuControllerWillHideMenu") mit nur Ersatz .UIMenuControllerWillHideMenu

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

ich einen Fehler gemacht habe, indem es initializer NSNotification.Name(rawValue: "UIMenuControllerWillHideMenu") Zugabe, die als NSNotificationNametypedef NSString nicht erforderlich ist, die direkt einen Zugriff auf vordefinierte Werte können mit .<value name>

Für weitere Details:
addObserver:selector:name:object:
NSNotificationName

Verwandte Themen