首页 文章

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

提问于
浏览
2

我'm writing an application that receives OSC messages. Here' s 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:在nib中创建的文本字段 .

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

1 回答

  • 1

    看起来该方法正在触发,并且消息的内容具有成功表示为字符串的浮点数 . 你在 viewDidLoad 中的值是've also indicated that you can see the content of the text field when setting it' .

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

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

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

相关问题