ios - 当我按一次按钮时,键盘不显示,但是当我长时间按下一个按钮时
问题描述
我在 uitextfield 上添加了一个点击,仅在该字段中长按触摸时键盘不显示。怎么做才能让键盘在按的时候弹起来,久了不按?TAP TAP 也可以工作并删除其他视图......我做错了什么?
class DeparturesView: UIViewController {
…
private let searchTextFieldData: UISearchTextField = {
let searchTextFieldData = UISearchTextField()
searchTextFieldData.translatesAutoresizingMaskIntoConstraints = false
searchTextFieldData.keyboardType = .alphabet
searchTextFieldData.borderStyle = .roundedRect
searchTextFieldData.autocorrectionType = .no
searchTextFieldData.spellCheckingType = .no
searchTextFieldData.layer.cornerRadius = 10
searchTextFieldData.backgroundColor = .white
searchTextFieldData.returnKeyType = .search
return searchTextFieldData
}()
}
override func viewDidLoad() {
…
//Mark - Add gesture to app
func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer, shouldReceive touch: UITouch) -> Bool {
return touch.view == self.view
}
//Mark - Hide keyboard
let hideKeyboards = UITapGestureRecognizer(target: self.view, action: #selector(UIView.endEditing(_:)))
hideKeyboards.delegate = self
view.addGestureRecognizer(hideKeyboards)
//Mark - Detele other view and show keyboard
let hideTableView = UITapGestureRecognizer(target: self, action: #selector(tapHandler))
hideTableView.numberOfTapsRequired = 1
hideTableView.delegate = self
searchTextFieldData.addGestureRecognizer(hideTableView)
}
@objc func tapHandler(_ sender: UITapGestureRecognizer){
print("Show tap tap")
favouriteLabel.removeFromSuperview()
tableViewWithFavouriteBusStop.removeFromSuperview()
}
extension DeparturesView: UITextFieldDelegate{
func textFieldDidBeginEditing(_ textField: UITextField) {
becomeFirstResponder()
}
解决方案
按照步骤
删除“hideTableView”TapGesture
添加
self.earchTextFieldData.delegate = self
viewDidLoad 和替换“textFieldDidBeginEditing”
func textFieldDidBeginEditing(_ textField: UITextField) { favouriteLabel.removeFromSuperview() tableViewWithFavouriteBusStop.removeFromSuperview() becomeFirstResponder() }
推荐阅读
- python - 如何制作 install.py 以使用 Python 安装多个软件包?
- excel - 无法设置 List 属性。无效的属性数组索引
- java - 我想在单击按钮时创建一个复选框
- machine-learning - 权重什么时候停止更新?
- ruby-on-rails - 脚手架再生后无法启动 rails s
- javascript - Communicate with web explorer
- wso2 - 在 WS02 上,速率限制成功,但配额没有
- c# - Unity:碰撞器不通过脚本调整 Sprite Shape 的大小
- python - 如何修复'ctypes.ArgumentError:参数1:
:预期 LP_c_ulong 实例而不是 LP_SECURITY_ATTRIBUTES' - wavesplatform - 如何在 Wave 平台上创建自定义网关和自定义 Wave 钱包