2016-06-21 80 views
1

我能夠以編程方式使用以下代碼創建菜單項。NSMenuItem更新標題

primaryMenu.addItem(NSMenuItem(title: "MenuTitle", action: nil, keyEquivalent: ""))

我希望能夠更新從此菜單項的標題。當我使用Interface Building手動創建菜單時,我可以非常輕鬆地完成此操作。

我沒有辦法確定菜單項。

回答

1

存儲到您的NSMenuItem參考(如在一個實例變量),並在其上設置標題時,你希望:

let myMenu = NSMenuItem(title: "MenuTitle", action: nil, keyEquivalent: "") 

primaryMenu.addItem(myMenu) 

//somewhere else: 
myMenu.title = "xyz" 
+0

但是*其他地方*必須在相同的範圍內,這沒有多大意義。 – vadian

+0

補充說明 – Alexander

1

在類

的頂層只需創建一個懶惰的實例變量
lazy var mySpecialMenuItem : NSMenuItem = { 
    return NSMenuItem(title: "MenuTitle", action: nil, keyEquivalent: "") 
}() 

和菜單項賦給變量

primaryMenu.addItem(mySpecialMenuItem) 

現在,您可以更改標題

mySpecialMenuItem.title = "Something Else" 

一個懶惰的實例變量的好處是,直到它的首次訪問的它不會被初始化,你能避免一個可選的或隱含的展開可選。