OSX开发界面刷新问题

三千万分之一 发布于 2018/11/29 11:04
阅读 178
收藏 0

开源之夏第三届火热来袭,高校学生参与赢万元奖金!>>>

背景:我本人之前没有做过任何OSX的开发,对这块的基础知识非常欠缺,最近强行上手一个Mac的桌面应用开发,其中有一个这样的需求:在某个条件达成之前,循环播放几张图片以及相应的文字提示信息。

我现在的做法是:用一个Image View 控件来显示图片,通过“m_MyImageView.image = [NSImage imageNamed:@"xxxx.png"]” 来贴图并进行图片切换。用Text Field 控件来显示提示信息(有多个这样的控件,然后我通过 [m_MyText setStringValue:@"xxxxx"] 来设置显示信息,如果我不想显示的话,就设为一个空值)。

我现在开了一个线程来进行页面的切换(所谓的页面就是一张图片加上几个提示信息),线程中主要调用我自己写的切换函数:[self PageSwitching : iPageIndex];  现在的情况是:从代码调试的情况来看,流程都已经走通了,但页面就是无法成功切换。然后我又另外添加了一个测试用的按钮,然后在按钮响应函数里面调用我的页面切换函数,可以成功切换。说明我的函数是没有问题,但不知道为啥在在线程里面无法自动切换。然后我也尝试了在调用页面切换函数之后使用[sele.MyWindow windowRef] 类似这种看起来就像窗口刷新的函数,但还是没啥效果。

请教各位大神,在页面切换后,我该怎样做能正确的显示我的界面窗口。感谢各位的帮助

加载中
0
三千万分之一

我自己搞定了,Mac好像不允许在主线程外的线程进行UI操作,所以在线程中要做线程同步

dispatch_sync(dispatch_get_main_queue(), ^{

[self PageSwitching : iPage];    //UI操作

});

OSCHINA
登录后可查看更多优质内容
返回顶部
顶部