【问题标题】:How can I create "add new address" functionality similar to the contact for iOS (iPad & iPhone)如何创建类似于 iOS(iPad 和 iPhone)联系人的“添加新地址”功能
【发布时间】:2012-03-12 16:18:09
【问题描述】:

我正在尝试创建类似于 iOS 联系人应用程序的“添加新地址”和“添加新电话号码”功能。

我对这个过程特别感兴趣。

  1. 当没有记录时具有并“添加新项目”字段 进入。
  2. 当用户单击“添加新项目”行时,该行消失并且 出现多行多字段输入区(不是地址信息 但风格相似)。
  3. 一旦用户在任何字段中添加任何信息,一个新的“添加 新项目”出现。

以及添加新电话号码的过程

  1. 用户点击电话号码字段。
  2. 用户添加一个号码,一旦输入第一个号码,就会出现 iPhone 电话字段。
  3. 如果用户添加一个号码
  4. 然后删除它
  5. 然后移动到下一个字段,iPhone 字段消失。

我很擅长管理数据以及插入和删除行。我遇到困难的地方是代表在 uitextfield 中听什么,要查找什么,以及何时更新 uitableview。

任何帮助将不胜感激。

谢谢,

詹姆斯

【问题讨论】:

    标签: iphone ios ipad uitableview uitextfield


    【解决方案1】:

    首先,你可以给你的 textFields 标签找出当前正在编辑的行。在委托方法中,只需检查 sender.tag 即可确定行。

    UITextFieldDelegate 为您提供所需的所有信息:

    – textFieldDidBeginEditing:
    

    开始 xy 行的编辑,用户触摸了文本字段,文本字段是第一响应者,光标现在正在闪烁。是时候切换到编辑模式并添加“添加另一个地址”行了。

    – textField:shouldChangeCharactersInRange:replacementString:
    

    用户更改了文本字段的内容。 使用[textField.text stringByReplacingCharactersInRange: range withString: string] 获取结果字符串。从该字符串中获取长度。如果length > 0,则添加另一行。

    – textFieldDidEndEditing:
    

    Textfield 确实放弃了它的第一响应者状态。用户离开了文本字段。检查 textField 的行和内容 - 如果它是可选行并且文本为空(并且它是该部分中的最后一行),请删除该行。

    希望对你有所帮助?

    【讨论】:

    • 感谢您的回复。我看着这个代表做这样的事情。 – textField:shouldChangeCharactersInRange:replacementString: 但是这种方法不会在第一次击键之后为每个击键添加一个新行吗?
    • 是的,您应该在添加新行之前检查您的行数。如果第 2 行中的 textField 被编辑并且至少存在一个字符,则添加第 3 行 - 但前提是第 3 行不存在。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-01
    • 2017-07-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多