【问题标题】:UITextField not updating setTextUITextField 不更新 setText
【发布时间】:2013-06-02 12:41:40
【问题描述】:

我知道关于这个问题有很多问题,但我已经阅读了每个人,但我仍然遇到问题,在其他问题中,解决方案是添加一个属性,或者如果提问者忘记将其链接到视图控制器。我已经做了所有这些,它仍然不会更新!

我的.h:

@property(strong,nonatomic) IBOutlet UITextField *textField;

-(void)setCoords:(NSString *)coordinates tag:(int)tag;

.m

@synthesize textField;

设置从另一个视图切换时调用的文本的函数:

-(void)setCoords:(NSString *)coordinates tag:(int)tag {
    NSLog(@"1 %@", textField);
    textField = [[UITextField alloc] initWithFrame:CGRectMake(0,0,206,30)];
    NSLog(@"2 %@", textField);
    if (tag == 0) {
       [textField setText:coordinates];
       [self.view addSubview:textField];
       NSLog(@"3 %@", textField);
    }
    NSLog(@"%@", textField.text);
}    

来自NSLogoutput 始终是NULL,但如果我NSLog 字符串coordinates 只有我得到字符串。

我有什么遗漏/不知道/或做错了吗?

更新更新功能

NSLog 1 loggs NULL
NSLog 2 loggs <UITextField> 0x855b300; frame: = (0 0; 206 30) and some more stuff.
NSLog 3 loggs same as log 2

【问题讨论】:

  • 不确定,但为什么(coordinates) 中有括号?
  • 我写这个问题时的错误,我没有复制粘贴它,因为我不在我的Mac atm上。
  • 在更新后的代码中,如果打印日志 3,那么最终日志必须与第一个日志匹配,否则您的应用会出现内存损坏问题。
  • 创建一个展示错误的演示项目,提供 25 分的赏金,并将其发布到公共场所。这肯定会导致代码修复。

标签: ios uitextfield settext


【解决方案1】:

你的if (tag == 0) [textField setText:(coordinates)]; 行没有被执行。

检查tag==0 条件,如果不能验证为真。

【讨论】:

    【解决方案2】:

    首先记录文本字段(可能为零)。然后记录文本字段的标签,最后记录坐标字符串。再次运行。现在你知道问题所在了。

    【讨论】:

    • 我将它添加到函数“textField = [[UITextField alloc] init];”的开头现在 textField.text 正在工作,但是如何使其在文本字段中可见?如果我记录 textfield.text sting 坐标被记录但 textField doensnt 不显示字符串。
    • 这不是正确的指定初始化程序。您需要使用 initWithFrame 创建它,然后将其添加到您的视图子视图数组中。
    • 我有 initWithFrame 并添加了 [self.view addSubview:textField];但它仍然无法正常工作我在 if 语句之前分配了框架,并在 setText 之后将其添加到 subView。
    • 这不正常。创建它,添加它,然后设置文本。记录之前和之后的所有内容,如果仍然无法正常工作,请使用输出更新您的问题。
    • 我尝试在 if 语句之前和 alloc 之后添加它,但它也不起作用。我真的不知道发生了什么:S
    【解决方案3】:

    我的 UITextView 在 Interface Builder 中创建时遇到了同样的问题。一切都正确连接,我确保我 NSLogged 值以确保它们出现。

    要检查两件事:

    1. 确保您的文本颜色未设置为清除! (使用占位符文本进行测试)
    2. 您必须在 Interface Builder 中将“可选”文本的复选标记设置为 ON。如果您不希望它可选择,则必须在设置文本值后以编程方式将其更改为 OFF。

    我的问题是 #2。这绝对是一个 XCode 错误,但我很高兴我没有太疯狂地解决了它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多