【问题标题】:UITextField is not updatingUITextField 没有更新
【发布时间】:2013-03-11 21:58:17
【问题描述】:

我已经在我的应用程序上工作了一段时间,但我遇到了一个今天看起来很简单的问题。这可能只是一些愚蠢的事情,但我找不到。所以,请帮忙。

我有一个 UITextField 已连接到 IBOutlet 属性。 在viewDidLoad

self.myTextFied.text = @"123";

这行代码有效。 但在self.delegate 触发的方法中,更新myTextField.text 不会更新UI。

self.myTextFied.text = @"345";
NSLog(@"%@",self.myTextField.text);

NSLog of self.myTextField.text 显示 345。 有谁知道是什么原因以及如何解决?

【问题讨论】:

  • self.myTextField.text = @"345";这是别的东西,但我将其更改为 345 进行测试。
  • 我的问题是你在哪里设置文本字段的值?
  • 您是否在调试器中检查了您的文本字段不是 null 并且您已将其与 IB 正确连接?
  • @nsgulliver self.myTextField.text = @"345";这是另外一回事,但我将其更改为 345 进行测试。self.myTextField.Text 的 NSLog 显示为 345。
  • 你给事件循环一个重绘 UI 的机会?此外,如果您在“this works”行和“this doesn't work”行之后记录文本字段对象,它肯定显示的是同一个对象?即:NSLog(@"Text object is: %@", self.myTextField);

标签: ios objective-c xcode


【解决方案1】:

您需要让UITextView 有机会获得更新。 UI 在单个线程上运行,因此只要您的委托方法仍未完成,就可能不会更新。没有更多信息很难说。您可以查看here 以获得更多帮助。

【讨论】:

    【解决方案2】:

    首先你应该检查你是否在主线程中更新你的界面 - 如果使用 gcd 尝试调用 self.setNeedsLayout

    【讨论】:

      猜你喜欢
      • 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
      相关资源
      最近更新 更多