关闭tableviewcontroller中uitableviewcell中文本字段的键盘 - Swift
Posted
技术标签:
【中文标题】关闭tableviewcontroller中uitableviewcell中文本字段的键盘 - Swift【英文标题】:Dismiss keyboard for textfield in uitableviewcell in tableviewcontroller - Swift 【发布时间】:2016-05-12 18:05:08 【问题描述】:我的自定义表格视图单元中有一个文本字段和文本视图。
我有 4 个不同的原型单元,其中创建了 4 个不同的类。一个原型单元格中有一个文本字段,另一个原型单元格中有一个文本视图。
我不确定我该怎么做,我不明白那里的 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 中没有可调用的文本字段。
【问题讨论】:
您能否明确说明您要在这里做什么? 我想找到关闭键盘的方法,好像我错过了设置键盘以在情节提要中以交互方式关闭!但是,它不会使用“返回”键关闭键盘 在这种情况下,您需要在每个包含UITextField
或UITextView
的UITableViewCell
类中使用@rMickeyD 的答案。
【参考方案1】:
转到故事板中的属性检查器,然后单击 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
【讨论】:
第一种方法有效!但对于第二个,我没有任何文本字段可以在viewDidLoad
中输入。我的文本字段在tableviewcell
的类中【参考方案2】:
我遇到了同样的问题,你可以用 IQKeyboardManager 解决这个问题,你不需要让自定义单元类复杂化,只需将它安装到你的项目中,当你完成安装时,在 appDelegate 里面didFinishLaunchingWithOptions 方法,添加这行代码:
IQKeyboardManager.shared.shouldResignOnTouchOutside = true
从here 获取 IQKeyboardManager。
【讨论】:
以上是关于关闭tableviewcontroller中uitableviewcell中文本字段的键盘 - Swift的主要内容,如果未能解决你的问题,请参考以下文章
如何通过单击 TableCell 中的按钮将我的 TableCell 中的标签值传递给 TableViewController? [关闭]