2

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

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

想法2(这是我认为更好的方法):提供一个UITextField带有+按钮的按钮。用户输入 1 个项目,然后单击+按钮使另一个项目UITextField出现。如果屏幕上有超过 1 个文本字段,它们每个都会获得一个-按钮来“删除”该字段。关于我如何去做这件事的任何想法?

谢谢!

4

2 回答 2

0

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

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


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

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

于 2012-09-06T08:23:06.827 回答
0

查看 iPhone 上主/细节的 Xcode 模板。

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

于 2012-09-05T14:58:07.307 回答