如何通过快速触摸单元格内的按钮来编辑文本字段

Posted

技术标签:

【中文标题】如何通过快速触摸单元格内的按钮来编辑文本字段【英文标题】:How to edit a text field by touching a button within a cell swift 【发布时间】:2016-10-08 01:18:43 【问题描述】:

我在 collectionview 控制器中有一个文本字段,我希望能够通过按下单元格中的按钮来调用它。有没有办法从单元格中创建该文本字段 firstResponder()?

【问题讨论】:

您的收藏视图中有多少个部分? 我想只有 1 还有几个问题,只是为了确保我的方向正确。文本字段是否也在单元格中,或者它只是 collectionView 之外的视图控制器的属性? 如果文本字段在集合视图之外,则非常简单。如果每个单元格都有自己的文本字段,需要在按下按钮时激活它,这有点复杂,但我可以编写一些示例代码来提供帮助。 是的,正如我所说,文本字段在主视图控制器中。它实际上甚至不在集合视图中,只是与整个事物重叠。 【参考方案1】:

好的,所以我让它工作了,但我不确定它的效率如何,所以如果有人知道更好的方法,请发布答案,我会在一两天后选择最好的。这就是我使用:

button.addTarget(self.supernode, action: #selector(CollectionViewController.buttonTapped), forControlEvents: .TouchUpInside)

它说“supernode”的原因是因为我正在使用 asyncdisplaykit 但 superview 应该做同样的事情,除非你必须加强两次而不是一次,不确定。无论如何,我用它在主视图控制器中运行了一个名为 buttonTapped() 的函数。

func buttonTapped(sender: ASButtonNode) 
        self.txtField.becomeFirstResponder()
    

如果使用 uikit 或 storyboard 或 w/e,再次用视图替换节点。如果这不是“正确”的方式,请告诉我,因为性能对我很重要。

【讨论】:

你说得对。通常发送者是一个 UIButton 这个 ASButtonNode 有什么用?你为什么把它放在那里 正如我所说,我使用的是 AsyncDisplayKit,它使用节点而不是视图,因此如果使用 UIKit / Storyboard,只需将“节点”一词替换为“视图”。我想我在答案中提到了两次大声笑..

以上是关于如何通过快速触摸单元格内的按钮来编辑文本字段的主要内容,如果未能解决你的问题,请参考以下文章

WPS或EXCEL如何让文本框引用单元格内的内容?

无法选择或编辑 Tableview 单元格内的文本字段

如何在 iPhone SDK 中使 tableviewcell 文本在触摸时可编辑?

完成在单元格内编辑 textview 后向 tableview 添加另一个单元格

快速单击其中一个 tableview 单元格内的按钮后重新加载 tableview

如何以编程方式在单元格内创建文本字段或标签?