隐藏键盘时按下输入或在自定义tableViewCell上点击tableViewCell
我是新来的Swift和一直在隐藏键盘时textField是在自定义tableview单元格上挣扎。我认为这个问题源自于TableViewCell类中的textField Reference,但我无法确定。我尝试了一切,有点迷失。隐藏键盘时按下输入或在自定义tableViewCell上点击tableViewCell
我的代码包括:
TableViewCell:
import UIKit
class TableViewCell: UITableViewCell, UITextFieldDelegate
{
@IBOutlet weak var userText: UITextField!
@IBAction func answers(_ sender: UITextField)
{
}
override func setSelected(_ selected: Bool, animated: Bool)
{
super.setSelected(selected, animated: animated)
}
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
textField.delegate = self
textField.resignFirstResponder()
return true
}
}
和TableViewController:
import UIKit
class TableViewController: UITableViewController, UITextFieldDelegate
{
var textfield = TableViewCell()
override func viewDidLoad()
{
super.viewDidLoad()
let myText = textfield.userText
textField.resignFirstResponder()
myText?.delegate = self
}
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
self.view.endEditing(true)
return false
}
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int
{
return 3
}
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell
{
let cell = tableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath)
return cell
}
}
我试图运行来自两类的textFieldShouldReturn
功能,但我不能让它开始工作。
删除UITextFieldDelegate
并委派从UITableViewCell
然后设置委托FUNC在UITableViewController
- >内
`override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell
{
let cell = tableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath)as! TableViewCell
cell.userText.delegate = self
return cell
}
那么你要在UITableViewController
添加textFieldShouldReturn
并返回true试试这个
这样做谢谢你! –
您textFieldShouldReturn
函数里面插入textField.resignFirstResponder
或者在你的viewDidLoad
插入tableView.keyboardDismissMode = .onDrag
或.interactive
滚动时,如果你想
FUNC textFieldShouldReturn(_文本框:的UITextField) - >布尔{ textField.resignFirstResponder() self.view.endEditing(真) 还真 }仍然没有解决它,我 –
我觉得它有什么做的参考为textField在单独的TableViewCell类,但我无法确定或如何解决它。 –
您是否尝试过关闭拖拽选项?这是现在最常用的只是向下滑动,它关闭键盘 –
在您的tableView细胞类添加这个功能,因为你已经在tableviewCell申报的委托,因此驳回类。
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
textField. resignFirstResponder()
return false
}
的可能的复制[通过触摸任何地方使用Swift来关闭iOS键盘](https://stackoverflow.com/questions/24126678/close-ios-keyboard-by-touching-anywhere-using-swift) – Adrian
你尝试过textField.resignFirstResponder吗? –