UITableViewCells 内的 UITextfield - 关闭键盘
UITextfield inside UITableViewCells - dismiss keyboard
我在每个 table 单元格中有几个 UITextfields
。通过点击 "Done" 按钮或触摸键盘外部,键盘应该被关闭。
我的问题:textFieldShouldEndEditing
方法仅在我点击另一个文本字段时被调用并且键盘不会消失。
我想我已经实现了必要的部分(委托和协议方法)。
有谁知道我在这里错过了什么....?
这是代码(相关部分):
class myVC: UIViewController, UITableViewDataSource, UITableViewDelegate, UITextFieldDelegate {...
这是小区设置...
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell
{
let tcell: UITableViewCell = UITableViewCell(style: UITableViewCellStyle.Subtitle, reuseIdentifier: "tbCell")
let textfield: UITextField = UITextField(frame:...
switch (indexPath.section) {
case 0: ...
case 1:
textfield.text = section2[indexPath.row]
tcell.addSubview(textfield)
textfield.delegate = self
return tcell
这是协议方法:
func textFieldShouldEndEditing(textField: UITextField) -> Bool {
textField.resignFirstResponder()
print("method is called")
return true
}
谢谢!
我在 Objective-C 中给出这个答案,因为我不使用 Swift
tableView.keyboardDismissMode = UIScrollViewKeyboardDismissModeOnDrag;
何时滚动表格视图,并且:
tableView.keyboardDismissMode = UIScrollViewKeyboardDismissModeInteractive;
什么时候你会触摸外部文本字段。
为什么不试试 UITextfield 的 textFieldShouldReturn 委托。
- (BOOL)textFieldShouldReturn:(UITextField *)textField {
[textField resignFirstResponder];
return NO;}
Swift 4.0
tableView.keyboardDismissMode = .onDrag
或
tableView.keyboardDismissMode = .interactive
我在每个 table 单元格中有几个 UITextfields
。通过点击 "Done" 按钮或触摸键盘外部,键盘应该被关闭。
我的问题:textFieldShouldEndEditing
方法仅在我点击另一个文本字段时被调用并且键盘不会消失。
我想我已经实现了必要的部分(委托和协议方法)。
有谁知道我在这里错过了什么....?
这是代码(相关部分):
class myVC: UIViewController, UITableViewDataSource, UITableViewDelegate, UITextFieldDelegate {...
这是小区设置...
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell
{
let tcell: UITableViewCell = UITableViewCell(style: UITableViewCellStyle.Subtitle, reuseIdentifier: "tbCell")
let textfield: UITextField = UITextField(frame:...
switch (indexPath.section) {
case 0: ...
case 1:
textfield.text = section2[indexPath.row]
tcell.addSubview(textfield)
textfield.delegate = self
return tcell
这是协议方法:
func textFieldShouldEndEditing(textField: UITextField) -> Bool {
textField.resignFirstResponder()
print("method is called")
return true
}
谢谢!
我在 Objective-C 中给出这个答案,因为我不使用 Swift
tableView.keyboardDismissMode = UIScrollViewKeyboardDismissModeOnDrag;
何时滚动表格视图,并且:
tableView.keyboardDismissMode = UIScrollViewKeyboardDismissModeInteractive;
什么时候你会触摸外部文本字段。
为什么不试试 UITextfield 的 textFieldShouldReturn 委托。
- (BOOL)textFieldShouldReturn:(UITextField *)textField {
[textField resignFirstResponder];
return NO;}
Swift 4.0
tableView.keyboardDismissMode = .onDrag
或
tableView.keyboardDismissMode = .interactive