文本字段值未显示在我的视图中

时间:2013-04-17 16:48:01

标签: objective-c xcode

我正在编写一个接收OSC消息的应用程序。这是a screenshot

当我将突出显示的代码放在receivedOSCMessage方法(每次收到消息时调用)时,文本字段不会显示my_textfield.text的更新值,即使它在控制台中打印了正确的值。但是,如果我把它放在ViewDidLoad中,它可以正常工作。可能导致什么?

编辑:receivedOSCMessage是委托方法。

以下是OSCMViewController.h的内容:

#import <UIKit/UIKit.h>

@interface OSCMViewController : UIViewController
@property (retain, nonatomic) IBOutlet UITextField *my_textfield;

@end

Edit2:在笔尖中创建的文本字段。

通过单独的应用程序手动发送消息。

1 个答案:

答案 0 :(得分:1)

看起来该方法正在触发,并且消息的内容具有成功表示为字符串的浮点数。您还指出,在viewDidLoad中设置值时,您可以看到文本字段的内容。

有充分证据表明,在视图准备好之前,receivedMessage方法正在触发。要确认,请在viewDidLoadreceivedMessage中添加断点。我的猜测是你会先看到receivedMessage断点。

另一种可能性是消息接收组件正在从主线程发送委托消息,并且您的UI更新正在被错过。尝试在receivedOSCMessage方法中将代码包装在像这样的主线程块中......

    dispatch_async( dispatch_get_main_queue(), ^{
       // do the ui work here
       my_textfield.text = dat_string;
    });