我目前在Objective-C編寫的Mac App和不能爲我的生活弄清楚如何隱藏NSMenuItem。 (注意:是的,我的意思是隱藏,而不是禁用/變灰,我意識到這樣做會對用戶體驗產生影響,但功能並不是真的如你所想的那樣,只要相信我就可以。)如何隱藏NSMenuItem?
文件沒有提到這樣做,它甚至有可能嗎?
我目前在Objective-C編寫的Mac App和不能爲我的生活弄清楚如何隱藏NSMenuItem。 (注意:是的,我的意思是隱藏,而不是禁用/變灰,我意識到這樣做會對用戶體驗產生影響,但功能並不是真的如你所想的那樣,只要相信我就可以。)如何隱藏NSMenuItem?
文件沒有提到這樣做,它甚至有可能嗎?
如果您已在您的頭文件中定義了您的NSMenuItem
並通過您的NIB連接了它,您可以簡單地調用隱藏屬性。
[myMenuItem setHidden:YES];
「變灰」 的菜單項將[myMenuItem setEnabled: NO];
isHidden是一個getter,而不是setter。你不能改變它。 –
在雨燕4.0,'menuItem.isHidden = TRUE'工作。如果你不相信我,你可以試試。我認爲對象C的API是相同的。也許不是? –
這只是Swift名稱約定。 Cocoa Obj-C屬性被稱爲「隱藏」。爲對象 - 屬性訪問器合成會給你2個干將:「是否隱藏」和「隱藏」和二傳手「setHidden」。所以 - 在Obj-C中使用點符號只能執行X.hidden = YES/NO;或[X setHidden:YES/NO]; –
的對象 - 財產被命名爲 「隱藏」 。這意味着,基本布爾構件被命名爲_hidden和3次訪問器爲您自動合成:2級的吸氣劑:isHidden
和hidden
加一個設定器:setHidden
。
在的OBJ-C,使用點符號,你可以只設置使用屬性:
myMenuItem.hidden = YES; // or NO
或在正常的消息:
[myMenuItem setHidden:YES]; // or NO
來獲取值您可以myMenuItem.hidden
,myMenuItem.isHidden
, [myMenuItem hidden]
或[myMenuItem setHidden]
現在Swift借用了它的命名約定(在我的語言低於意見)C和C++。布爾屬性的setter和getter命名爲「isHidden」。
當Xcode的轉換與obj-C接口定義隱藏屬性的可可的OBJ-C框架頭---它合成所讀/寫的「是否隱藏」迅速屬性。
這就是爲什麼你可以同時使用的getter和setter:
if myMenuItem.isHidden {
}
和
myMenuItem.isHidden = true // or false
希望這個覆蓋問題
setHidden完美工作,感謝。 –