从我的理解来看,我想要做的事情应该是非常直接的,但我似乎在这方面遇到了一些困难。
我试图将UITextField添加到我的故事板中的UITableViewCell中,但是它只允许我将文本字段作为UIView的子字段,后者放在表视图单元格中。
ie:
UITableViewCell
|__UIView
|__UITextView我在我的Swift ViewController中创建了我的IBOutlet,并添加了以下函数,使键盘在触摸时显示出来
override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
self.nameTextField.becomeFirstResponder()
} 不过,当我运行此操作时,单元格会响应触摸,但就好像文本视图总是隐藏在一起,永远不会启用或becomeFirstResponder。我假定这与UIView有关,但是我没有成功地将文本视图直接放置在表视图单元格中。
如果有人知道我做错了什么,我会非常感激你的帮助,
谢谢!
发布于 2015-08-02 16:11:09
创建自定义UITableView单元格作为xib,并为此创建相应的.swift文件。向单元格中添加一个textField,并在自定义.swift类中为textField创建一个.swift。确保在这个xib中设置了约束。
在ViewController .swift类中,使func tableView(cellForRowAtIndexPath)返回自定义单元格。
您不必设置firstResponder,因为默认情况下键盘会出现。除非您的手机基本上只是一个textField,否则让didSelectRowAtIndexPath总是打开键盘似乎不明智。如果由于某些原因,单元格总是采取触摸操作,则使用didSelectRowAtIndexPath,但请使用
tableView.cellForRowAtIndexPath(indexPath).textField.becomeFirstResponder()将textField委托设置为自定义单元格,并将其添加到CustomTableViewCell.swift中,以在按返回键时取消键盘:
func textFieldShouldReturn(textField: UITextField) -> Bool {
textField.resignFirstResponder()
return false
}附带注意:除非取消选择使用硬件键盘的选项,否则键盘将不会显示在模拟器中。
下面是一个我认为您正在尝试实现的示例项目:BbI6s4s
https://stackoverflow.com/questions/31773054
复制相似问题