从用户输入中分离多个项目

时间:2012-09-05 14:48:23

标签: iphone objective-c ios user-interface

我希望我的用户输入任意长的项目列表,然后将它们在幕后分成我可以轻松存储在我的数据库中的格式。我有两个关于如何做到这一点的想法,但只有一个我可以开始工作(不太优雅的版本)。

思想1(这是我可以开始工作的那个):为用户提供UITextView并让他们输入由特殊字符;分隔的项目。当他们提交表单时,我用正则表达式解析它,然后相应地存储。从UI / UX的角度来看,这并不像我想的那样优雅,但我可以使这个工作。

思考2(这是我认为会更好的):通过它提供UITextField+按钮。用户输入1个项目,然后点击+按钮以显示另一个UITextField。如果屏幕上有多个文本字段,则每个文本字段都会获得-按钮以“删除”该字段。关于如何做到这一点的任何想法?

谢谢!

2 个答案:

答案 0 :(得分:0)

查看iPhone上的主/详细信息的Xcode模板。

它有一个表视图,您可以通过按右上角的+按钮添加新行。在这种情况下,每一行都是默认的tableViewCell,但您可以轻松修改以添加UITextField

答案 1 :(得分:0)

选项2听起来像使用UITableView非常容易。您可以在其上方有一个文本字段,这样您就不必显示新视图来输入数据。然后只需在输入数据后清除文本字段。您可以使用滑动删除表上的删除条目。

/-----------------\
|Prompt text  | + |
|------------------
| User entry 1    |
| User entry 2    |
| User entry 3    |
| User entry 4    |
|                 |
\-----------------/


实现选项1的另一种方法是TITokenField。它允许用户键入,直到他们按下令牌分隔符键(','默认情况下我想)。此时,将根据用户输入的文本创建令牌。

可以使用各种回调,以便您可以在创建令牌之前验证其输入。处理用户输入的项目列表就像迭代一系列令牌一样简单。奖励功能:TITokenField可以将数据源用作自动完成功能。演示应用程序显示的内容与您描述的内容非常相似,并带有一个加号按钮来添加新令牌。可以通过选择它们然后按退格键来删除标记。