如何在动作未完成时隐藏(覆盖)所有按钮

时间:2017-05-30 16:20:33

标签: ios swift keyboard

我在屏幕上显示键盘和显示菜单按钮。

当我点击菜单按钮时,会显示显示表格视图,但不会隐藏键盘。

我想要覆盖菜单按钮(无法点击按钮)如果显示键盘,它就像UIAlertViewController或者像UIActivityViewController一样,在警报或活动完成之前你不能再做一个动作。

我会在键盘上添加隐藏键盘按钮,但用户必须点击此按钮才能点击显示菜单按钮。

1 个答案:

答案 0 :(得分:1)

无需使此问题复杂化,您只需为键盘创建notifier即可处理键盘的互动。

1:在viewDidLoad函数

中添加这些行
NotificationCenter.default.addObserver(self, selector: #selector(keyboardWillShow(_:)), name: NSNotification.Name.UIKeyboardWillShow, object: nil)
NotificationCenter.default.addObserver(self, selector: #selector(keyboardWillHide(_:)), name: NSNotification.Name.UIKeyboardWillHide, object: nil)

2:添加这些功能以启用/禁用按钮的用户交互

func keyboardWillShow(_ notification: NSNotification) {
    button.isUserInteractionEnabled = false
}

func keyboardWillHide(_ notification: NSNotification) {
    button.isUserInteractionEnabled = true
}

隐藏键盘self.view.endEditing(true)