2009-07-30 87 views
0

我正在開發可可中的應用程序。現在我面臨一個關鍵問題。我無法在NSView中隱藏控件NSButton。我用下面的代碼無法在NSView中隱藏控件

[btn setHidden:YES] 

但這個「btn」控件沒有變得隱藏。我用下面的代碼檢查按鈕是否隱藏

[btn isHidden] 

但是這個返回YES。同時我也不能在展示這個視圖時向NSTextfield發送一個值。

在此先感謝。

回答

1

請儘量隱藏按鈕後,運行runloop一次:

[[NSRunLoop currentRunLoop] runUntilDate:[NSDate dateWithTimeIntervalSinceNow:1]]; 
+0

謝謝,這對我來說是一個NSProgressIndicator,它拒絕隱藏,而不是1秒,我用0.02似乎清除它。不知道爲什麼displayIfNeeded,setNeedsDisplay等沒有強制它。它通常沒有這個隱藏在我的應用程序的其他地方。 – GeoffCoope 2016-07-25 21:07:02

1

不知道其他人是怎麼回事,在應用程序很難知道爲什麼會不會作出按鈕隱藏。

您是否阻止了主事件循環,導致更新事件沒有得到處理?通常這不是一件好事。

你可以做的強制立即更新的一件事是在按鈕或其父視圖或窗口上調用displayIfNeeded。這應該會導致視圖重繪。這適合作爲驗證按鈕將繪製(或不繪製)其正確狀態的實驗。如果調用displayIfNeeded確實會導致它消失,那麼您將需要確定爲什麼更新事件沒有得到正確處理。