如何以编程方式删除 UITextField 的内容?

Posted

技术标签:

【中文标题】如何以编程方式删除 UITextField 的内容?【英文标题】:How to delete the contents of a UITextField programmatically? 【发布时间】:2011-07-03 03:14:19 【问题描述】:

我正在编写一个 iPhone 应用程序,它有许多 UITextFields,需要用户输入一堆数据。我想要一个简单的“删除”工具,允许用户丢弃他们放入多个字段的任何数据。

这几天我一直在努力解决这个问题。我似乎无法找到进入各个文本字段并更改文本的方法。无论我尝试什么,我的应用都会向我抛出错误。

【问题讨论】:

是的,我在 IB 中创建了字段 您是否为文本字段制作了 IBOutlets? 【参考方案1】:

您可以使用界面生成器中的标签属性为序列中的每个文本字段分配标签,然后像这样获取文本字段

UITextField *txtf = (UITextField*)[self.view viewWithTag:aTagValue];

txtf.text = @""; or nil;

【讨论】:

【参考方案2】:

有几种方法可以解决这个问题。

您可以编写代码来单独擦除它们中的每一个。为此,您为每个人创建一个IBOutlet,并为它们的text 属性分配一个空白字符串。如果您只有几个字段,那是最简单的。如果你有更多,那就不是那么好。

您可以将它们设为公共容器视图的所有子视图并循环其子视图。这样,你只需要连接一个IBOutlet

您可以在整个视图层次结构中递归,并清空您找到的所有文本字段。

Apple 没有详细记录的另一种方法是使用IBOutletCollection。这样,您可以将所有文本字段分配给 IBOutletCollection 并循环遍历它。这可能是最简单、最直接的方法了。

【讨论】:

刚看完新的变形金刚电影回来...当女孩建议去看动作片时,你不要拒绝! :) 我使用了您描述的 IBOutletCollection 方法,它用一行代码就可以创造奇迹。我在 IB 中声明了一个数组并将我的所有文本字段链接到它。我只是在操作表中引用了该数组并将其中一个按钮设置为 [inputData setValue:(nil) forKey:@"text"]。当你知道怎么做时很简单!谢谢:)

以上是关于如何以编程方式删除 UITextField 的内容?的主要内容,如果未能解决你的问题,请参考以下文章

如何以编程方式将标记 (UIControl) 添加到 UITextField 或 SearchBar?

以编程方式使用 UIPickerView 文本设置 UITextField 文本

以编程方式在 UIView 上添加 UITextField Swift

将占位符添加到 UITextField,如何以编程方式快速设置占位符文本?

如何在UITextView中以编程方式移动光标?

如何以编程方式在视图控制器之间传递数据?我想将我的UITextfield数据传递给另一个视图控制器[重复]