2013-03-13 26 views
1

有沒有什麼辦法可以使用公共API「S(如蘋果的Dock右鍵菜單)自定義NSMenu外觀,例如,其透明度,背景顏色或前景色?自定義NSMenu(如Apple的Dock右鍵菜單)?

經過大量的搜索,我發現一些代碼他們正在使用私人API來製作菜單黑暗!!!

回答

1

我認爲如果您只是使用自定義視圖,而您的代碼看起來像您想要的並且像菜單一樣行事,那麼您的運氣會更好。一個示例項目,CustomMenus,它說明了該技術。它是WWDC 2010 session videos,Session 145, "Key Event Handling in Cocoa Applications"之一的一個伴侶。

+0

雅那是真的。但是,如果我使用自定義視圖,然後我必須手動處理的菜單項的所有驗證(即視圖啓用/禁用)+子處理+跟蹤區域和所有那些東西。如果沒有其他替代方案是存在的,那麼我必須去,只有這個方法! – 2013-03-13 08:37:01

0

不知道,如果你決定去與自己繪製的意見的解決方案,但可以用來做這樣的私有API:

MenuRef m = [[menu _menuImpl] _principalMenuRef]; 
    if (m) { 
     char on = 1; 
     SetMenuItemProperty(m, 0, 'dock', 'dark', 1, &on); 
    } 

有一個Github project實現這一點,工作基本上爲在NSMenu的下拉類別,並允許與單一屬性變暗。

這絕對是一個壞主意™,因爲它使用的是可能會或可能不會與未來操作系統的更新打破私有的API,但它似乎是停靠欄菜單的工作方式。