我在侧边菜单中使用SWRevealViewController
,在键盘上使用IQKeyboardManagerSwift
。
当我在文本字段中编辑内容并尝试打开菜单时,键盘应该会自动隐藏但我无法这样做。
应该怎么做?
答案 0 :(得分:0)
捕获开始菜单的事件。您可以使用SWRevealViewcontroller Delegate或只需在菜单按钮中添加@IBAction即可。
在此方法中,为需要键盘的元素调用.resignFirstResponder()(如textField):
textField.resignFirstResponder()
当然,您可以在每个可以使用键盘的元素中调用此函数,以确保调用正确的键盘。
答案 1 :(得分:0)
由于UIBarButtonItem不会继承自UIView或公开项目的基础视图,因此这不像添加手势识别器那样简单。
一个可行的解决方案是[步骤1]为侧边菜单图标定义自定义视图[步骤2]添加手势以向其隐藏键盘。
//gesture:tap anywehere to dismiss the keyboard
let tap = UITapGestureRecognizer(target:self.view,action:#selector(UIView.endEditing))
tap.cancelsTouchesInView = false
view.addGestureRecognizer(tap)
let customButton = UIButton(frame: CGRect.init(x: 0, y: 0, width: 20, height: 20))
customButton.setImage(UIImage(named: "menu"), for: .normal)
//hide keyboard gesture(tap gesture)
customButton.addGestureRecognizer(tap)
customButton.isUserInteractionEnabled = true
if self.revealViewController() != nil {
customButton.addTarget(self.revealViewController(), action: #selector(SWRevealViewController.revealToggle(_:)), for: .touchUpInside)
self.view.addGestureRecognizer(self.revealViewController().panGestureRecognizer())
}
self.navigationItem.leftBarButtonItem?.customView = customButton
请接受它是否有效。(为我工作)