由於某些原因,當我按下(單擊並按住)任何控件時,我的應用程序中的NSTimer凍結,直到釋放鼠標按鍵纔會觸發。當我按下鼠標時,它不會觸發。這很短時間,但它也凍結,如果我有一個彈出菜單打開,或組合框下降。NSRunLoop因NSTimer和任何輸入而凍結
我不確定是否有一些我錯過了,但它似乎是不正確的行爲。
我希望能夠單擊NSPopUpButtonCell的向下箭頭(或者甚至單擊並按住NSTableView),而不會讓整個NSTimer凍結(重繪NSView)。
任何意見/建議,將不勝感激。
NSTimer以模式NSDefaultRunLoopMode添加到currentRunLoop。
多線程肯定是* a *解決方案,但它不是唯一的解決方案。 – 2011-01-07 05:53:32
感謝您的更正,知道的好東西。你的解決方案看起來好多了! – Sam 2011-01-07 06:00:08
謝謝。在第二個線程上運行定時器是一個不錯的選擇。 *不*這樣做的主要原因是,如果您使用計時器觸發UI更新,因爲您不應該更新除主線程以外的其他任何UI,而這個人顯然是使用它(儘管您我可以回到主線程......)。 – 2011-01-07 06:18:00