【问题标题】:Separating multiple items from user input从用户输入中分离多个项目
【发布时间】:2012-08-30 07:57:30
【问题描述】:

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

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

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

谢谢!

【问题讨论】:

  • 我会使用 UITableView 来执行此操作,并在每次点击 + 时插入一个新行。
  • 啊……好简单。我不知道为什么我没想到!

标签: iphone objective-c ios user-interface


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

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

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


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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-31
      • 2020-08-07
      • 2020-06-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多