我的自定义表格视图单元格中有一个文本字段和文本视图。
我有 4 个不同的原型单元,创建了 4 个不同的类。 1 个原型单元中有一个文本字段,另一个原型单元中有一个文本视图。
我不知道我该怎么做,我也不明白那里的 obj-c 答案。
我已经尝试过
override func viewDidLoad() {
super.viewDidLoad()
let tap: UIGestureRecognizer = UIGestureRecognizer(target: self, action: #selector(UIInputViewController.dismissKeyboard))
view.addGestureRecognizer(tap) }
和
func dismissKeyboard() {
self.view.endEditing(true)
}
我想尝试一下
UITextFieldDelegate
和touchesbegan
和textfieldshouldreturn
方法,但是在我的tableviewcontroller中没有可以调用的文本字段。
转到故事板中的属性检查器,然后单击 tableView 并设置键盘以交互方式关闭。
或者
设置textField委托并实现
override func viewDidLoad() {
super.viewDidLoad()
textField.delegate = self
}
func textFieldShouldReturn(textField: UITextField) -> Bool // called when 'return' key pressed. return false to ignore.
{
textField.resignFirstResponder()
return true
}
我遇到了同样的问题,您可以使用 IQKeyboardManager 解决此问题,您不需要使用自定义单元类使事情变得复杂,只需将其安装在您的项目上,当您完成安装后,在 didFinishLaunchingWithOptions 方法内的 appDelegate 中,添加这行代码:
IQKeyboardManager.shared.shouldResignOnTouchOutside = true
从这里获取 IQKeyboardManager。
您可以使用cancelsTouchesInView来关闭键盘。
覆盖 func viewDidLoad() { super.viewDidLoad() let tap = UITapGestureRecognizer(target: self, action: #selector(UIInputViewController.dismissKeyboard)) tap.cancelsTouchesInView = false view.addGestureRecognizer(tap) }
@objc func dismissKeyboard() { view.endEditing(true) }