小编ten*_*ire的帖子

NSMenu动画阻止主线程

我有:

  • NSStatusItem具有自定义视图(在辅助线程中滚动文本),辅助线程更新内部状态并通过setNeedsDisplay通知主线程.
  • 在mouseDown上,弹出一个NSMenu.
  • 但是,如果选择了NSMenu中的任何NSMenuItem,或者如果检测到第二个mouseDown并且NSMenu消失,则滚动文本动画会断断续续.

似乎NSMenu默认视图在执行动画时会阻塞主线程.我已经通过辅助线程输出time_since_last_loop与视图的drawRect:(主线程)进行了测试,只有drawRect显示了断断续续.自定义视图的drawRect从~30 fps下降到5帧几帧.

有没有NSMenu动画非阻塞,或与自定义视图的drawRect并发的方法?

nonblocking nsmenu nsview nsthread

7
推荐指数
1
解决办法
418
查看次数

标签 统计

nonblocking ×1

nsmenu ×1

nsthread ×1

nsview ×1