Xcode 如何在主线程繁忙时更新接口?

Xcode 如何在主线程繁忙时更新接口?,xcode,swift,osx-yosemite,Xcode,Swift,Osx Yosemite,我有一个NSView,他每秒钟都画一些东西。另外,我有一个带有一些控件的设置窗口。问题是:当我想要更改设置时,我的视图被阻止。 我能做什么? 对于更新视图,我使用NSTimer: NSTimer.scheduledTimerWithTimeInterval(refreshInterval, target: self, selector:"updateView", userInfo: nil, repeats: true) 在updateView函数中,我调用myView.needsDispl

我有一个NSView,他每秒钟都画一些东西。另外,我有一个带有一些控件的设置窗口。问题是:当我想要更改设置时,我的视图被阻止。 我能做什么? 对于更新视图,我使用NSTimer:

 NSTimer.scheduledTimerWithTimeInterval(refreshInterval, target: self, selector:"updateView", userInfo: nil, repeats: true)
在updateView函数中,我调用myView.needsDisplay=true

尝试打开弹出按钮并冻结myView是非常烦人的

你知道我能做什么吗?
谢谢

这种可能的复制品很奇怪。在将NSTimer添加到RunLoop后,当我更改设置时,我的视图仍然冻结…那么您的问题就出在其他地方了。如果您发布代码,则更容易识别需要帮助的问题。问题很简单,但很难找到。我在awakeFromNib()中创建了NSTimer,但在那之后,我检查NSUserDefaults的最后一个状态,调用某个函数,并使计时器无效,因此NSRupLoop自动失效。因此,当我使用另一个时间间隔创建新的NSTimer时,我所要做的就是将此计时器添加到新的nsrunlop。