[objective-c]文本字段值没有出现在我的观点

标签: Xcode Objective-C
发布时间: 2017/3/27 3:11:36
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我正在写的应用程序接收的 OSC 消息。这里是一个截图

当我把突出显示的代码放在 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:

看起来像烧成方法,和消息的内容有一个浮动的成功被表示为一个字符串。 你也已经表明你可以看到文本字段的内容时,设置它的值在 viewDidLoad

这就是有力的证据,receivedMessage 方法射击之前认为是准备好了。 若要确认,添加断点在两个 viewDidLoadreceivedMessage 。 我的猜测是,你会看到 receivedMessage 首先命中断点。

另一种可能性是接收组件的消息发送关闭主线程,委托消息和您的 UI 更新也被忽略了,这种方式。 尽量在你的代码包在一个像这样的主线程块的 receivedOSCMessage 方法......

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