2017-06-26 28 views
0

例如我的導航項目打開菜單,但我希望它應該關閉鍵盤也。如何將2個或更多操作添加到導航項目?

openMenu.target = self.revealViewController() 
    openMenu.action = Selector("revealToggle:") 

在這種情況下,它工作正常並打開菜單。但是當我添加這個:

openMenu.action = #selector(dismissKeyboard) 

菜單不打開,但鍵盤是解僱如何結合這2個功能?

回答

0

反而增加了兩個動作按鈕,你可以嘗試在你的revealToggle功能關閉鍵盤這樣的:

func revealToggle() { 
    textField.resignFirstResponder() 
    // continue your code 
} 
+0

revealToggle功能被寫在另一個文件和目標c我想 - (IBAction爲)revealToggle:(ID)發送方 { [自revealToggleAnimated:YES]; } –

+0

我剛剛導入這個菜單 –

0

您可以通過使用通知模式做到這一點。 您可以添加您的類作爲觀察員通知,

// Register to receive notification 
NotificationCenter.default.addObserver(self, selector: #selector(YourClassName.handleKeyBorad), name: menuRevealed, object: nil) 

選擇到您的按鈕添加爲

openMenu.action = Selector("revealToggle:") 

處理你們班的通知,

func handleKeyBorad() 
{ 
    textField.resignFirstResponder() 
} 

在你揭示切換方法觸發通知爲

[[NSNotificationCenter defaultCenter] postNotificationName:@"menuRevealed" 
                object:self]; 

在使用通知模式時,請記住註冊一個類,並在不需要時刪除偵聽器。在沒有出現如上登記,並沒有消失,停止監聽通知,

NotificationCenter.default.removeObserver(self, name: notificationName, object: nil); 

------------ -----------編輯

在您揭示撥動只添加這行

UIApplication.sharedApplication().sendAction("resignFirstResponder", to:nil, from:nil, forEvent:nil) 

它會辭職所有UIResponder。不需要處理通知。

希望它有幫助。快樂編碼!

相關問題