我有一个UITableViewCell 其中有对UITextField的引用:
@IBOutlet weak var inputTextSelectAnswer: UITextField!
我正在尝试在键盘上方添加“完成”按钮,而在您点击该按钮时,键盘将关闭>
func setDoneOnKeyboard() {
let keyboardToolbar = UIToolbar()
keyboardToolbar.sizeToFit()
let flexBarButton = UIBarButtonItem(barButtonSystemItem: .flexibleSpace, target: nil, action: nil)
let doneBarButton = UIBarButtonItem(barButtonSystemItem: .done, target: self, action: #selector(dismissKeyboard))
keyboardToolbar.items = [flexBarButton, doneBarButton]
self.inputTextSelectAnswer.inputAccessoryView = keyboardToolbar
}
因为我没有在控制器本身中调用UITextField,但是在我的UITableViewCell中,有一种方法可以消除键盘抛出错误
Use of unresolved identifier 'view'
代码如下:
//CANNOT DO THE FUNCTION BELOW
@objc override func dismissKeyboard() {
view.endEditing(true)
}
如何通过UITableViewCell完成此操作?
答案 0 :(得分:0)
您可以添加
weak var delegate:YourVC?
然后在cellForRowAt
cell.delegate = self
然后
delegate?.view.endEditing(true)
您也可以直接在单元格内使用它
self.endEditing(true)
UITableViewCell子类不包含在UIViewController子类中的view属性
答案 1 :(得分:0)
如果您要为特定的文本字段添加工具栏,则更适合调用resignFirstResponder()
:
通知此对象已被要求放弃其状态 作为其窗口中的第一响应者。
请记住,它与文本字段的窗口有关,而不是特定的视图,也就是说,您不必担心view
即可结束其在您的情况。
致电
inputTextSelectAnswer.resignFirstResponder()
当您打算隐藏键盘inputTextSelectAnswer
文本字段时。
此外: