2012-06-13 51 views
0

我有2 NSButton s,兩者都是有邊界的瞬時推入按鈕。我有一個主窗口,其他視圖交換進出。這兩個按鈕位於主窗口自定義視圖中(下一個,上一個),這有助於瀏覽視圖。NSButton在setTransparent後突出顯示:NO setEnabled:YES

當我在下一個按鈕的幫助下到達2視圖時,我使前一個按鈕變爲可見狀態。因此,如果我在此時按下上一個按鈕,第一個視圖將被交換,並且使前一個按鈕變爲透明並啓用。

此時如果您按下一個按鈕導航到第二個視圖,第二個視圖將被換入並且上一個按鈕再次顯示。但這裏突出顯示的是。我怎樣才能擺脫這一點?

回答

0

我希望你會得到一些更好的答案,但是我發現在這種情況下工作的一般技術是等待啓用/禁用動作,直到事情已經解決了新的配置視圖。

畢竟(如果我已經正確地閱讀了你的描述),你隱藏了一個按鈕在它自己的動作處理器中。

推遲這是很容易通過調度在下次你的啓用/禁用碼獲得(更正確或者,以後)主線程的運行循環的調用:

dispatch_async(dispatch_get_main_queue(), ^{ 

    // Enable or disable your buttons here. 
}); 

作爲一種解決方案是有點破解,但另一方面,在重新配置導航UI之前,等到您的主視圖不再處於流動狀態之前,重新配置導航UI並不是一個壞方法。