【问题标题】:UITextField editing and adding to arrayUITextField 编辑和添加到数组
【发布时间】:2013-04-08 20:07:40
【问题描述】:

好的,所以我有一系列标签介于 21 和 35 之间的 UITextField。我正在使用 UITextField 委托在完成编辑时获取文本字段的值,然后将其添加到可变数组中。委托方法的代码如下:

- (void)textFieldDidEndEditing:(UITextField *)textField{

if(textField.tag >=21 && textField.tag <36){
    if(textField.text.length != 0)
    [ingredients addObject:textField.text];
  }
}

因此,当文本字段完成编辑后,它会将其值添加到可变数组中。这一切都很好。但是,如果再次编辑该文本字段,则会出现我的问题,如果用户更改该文本字段中的值,它将向数组中添加另一个值,我希望编辑以前的值而不是在数组中创建新值.

任何帮助将不胜感激!

【问题讨论】:

  • 当用户完成所有 textFileds 后,为什么不将所有 textField 值添加到数组中?还是必须这样?
  • 您应该根据 UITextField 的标签使用 NSDictionary 来根据字典中的键存储文本值,除非出于某种原因,解决方案依赖于使用数组。见@JDx 想法

标签: ios xcode ipad nsmutablearray uitextfield


【解决方案1】:

您可以将成分对象从 NSMutableArray 更改为 NSMutableDictionary。示例:

- (void)textFieldDidEndEditing:(UITextField *)textField{

    if(textField.tag >=21 && textField.tag <36){
        if(textField.text.length != 0)
            [ingredients setObject:textField.text forKey:[NSNumber numberWithInt:textField.tag]];
    }
}

【讨论】:

  • 工作得很好,谢谢!万一其他人有任何类似的问题,一旦它填满字典,就会像这样访问项目:for(id key in ingredient) { id value = [ingredients objectForKey:key]; [value doStuff]; }
【解决方案2】:

初始化时,将 15 个空字符串添加到您的成分数组中。然后当textFieldDidEndEditing:被调用时,将字符串设置在适当的索引(textField.tag - 21)而不是使用addObject:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-04
    • 1970-01-01
    • 2017-12-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多