例如我的導航項目打開菜單,但我希望它應該關閉鍵盤也。如何將2個或更多操作添加到導航項目?
openMenu.target = self.revealViewController()
openMenu.action = Selector("revealToggle:")
在這種情況下,它工作正常並打開菜單。但是當我添加這個:
openMenu.action = #selector(dismissKeyboard)
菜單不打開,但鍵盤是解僱如何結合這2個功能?
例如我的導航項目打開菜單,但我希望它應該關閉鍵盤也。如何將2個或更多操作添加到導航項目?
openMenu.target = self.revealViewController()
openMenu.action = Selector("revealToggle:")
在這種情況下,它工作正常並打開菜單。但是當我添加這個:
openMenu.action = #selector(dismissKeyboard)
菜單不打開,但鍵盤是解僱如何結合這2個功能?
反而增加了兩個動作按鈕,你可以嘗試在你的revealToggle
功能關閉鍵盤這樣的:
func revealToggle() {
textField.resignFirstResponder()
// continue your code
}
您可以通過使用通知模式做到這一點。 您可以添加您的類作爲觀察員通知,
// 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。不需要處理通知。
希望它有幫助。快樂編碼!
revealToggle功能被寫在另一個文件和目標c我想 - (IBAction爲)revealToggle:(ID)發送方 { [自revealToggleAnimated:YES]; } –
我剛剛導入這個菜單 –