[英]How to hide a NSMenuItem?
我目前正在Objective-C中編寫一個Mac應用程序,並且在我的生活中無法弄清楚如何隱藏NSMenuItem。 (注意:是的,我的意思是隱藏,而不是禁用/灰顯。我意識到這樣做會影響用戶體驗,但功能並不是你認為的那樣。只要相信我就可以了。)
文檔沒有提到這樣做,甚至可能嗎?
如果您已在標頭中定義了NSMenuItem
並通過NIB連接它,則只需調用隱藏屬性即可。
[myMenuItem setHidden:YES];
“灰色”menuItem將是[myMenuItem setEnabled: NO];
Obj-C屬性被命名為“隱藏”。 這意味着,底層布爾成員名為_hidden,並為您自動合成3個訪問器:2個getter: isHidden
和hidden
加上一個setter: setHidden
。
在Obj-C中,使用點表示法只能使用以下方法設置屬性:
myMenuItem.hidden = YES; // or NO
或者在正常消息中:
[myMenuItem setHidden:YES]; // or NO
獲取值可以是myMenuItem.hidden
, myMenuItem.isHidden
, [myMenuItem hidden]
或[myMenuItem setHidden]
現在,斯威夫特從(在我看來,語言上的劣勢)C和C ++中借用了它的命名約定。 布爾屬性將其setter和getter命名為“isHidden”。
當Xcode使用定義隱藏屬性的Obj-C接口轉換Cocoa Obj-C Framework頭時,它會合成一個“isHidden”swift屬性,它是讀/寫的。
這就是為什么你可以同時使用getter和setter:
if myMenuItem.isHidden {
}
和
myMenuItem.isHidden = true // or false
希望這能涵蓋這個問題
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.