我試圖在狀態欄菜單中使用NSProgressIndicator(不確定)。我使用NSView對象作爲menuitem的視圖,然後子視圖顯示進度指示器。但是每當我嘗試調用startAnimation時:對於進度,沒有任何反應。當我嘗試在正常的NSWindow上做同樣的事情時,它完美地工作,而不是在菜單項內。在NSMenuItem中使用NSProgressIndicator
我對可可和objective-c都很陌生,所以我可能忽略了一些「顯而易見」的東西,但我已經搜索了很多方法,但沒有成功。我發現有些菜單項無法在顯示時進行更新,您需要使用無邊框窗口。但我無法在任何文檔中確認這一點。
編輯:
好了,幾乎現在的作品。當使用setUsesThreadedAnimation時:並從MenuDelegate的menuWillOpen中創建一個新的線程。這個線程運行的本地方法:
-(void) doWork(NSProgressIndicator*) p{
[p startAnimation:self];
}
打開菜單時,這將啓動一個隨機的基礎上progressindicator(?)。如果我直接撥打startAnimation:
而不通過doWork:
(仍在使用新線程),它將無法工作。 setUsesThreadedAnimation:
是否使進度條創建它自己的動畫線程?
是的,似乎沒有幫助。 – Henrik 2011-01-13 09:54:28