簡體   English   中英

如何隱藏NSMenuItem?

[英]How to hide a NSMenuItem?

我目前正在Objective-C中編寫一個Mac應用程序,並且在我的生活中無法弄清楚如何隱藏NSMenuItem。 (注意:是的,我的意思是隱藏,而不是禁用/灰顯。我意識到這樣做會影響用戶體驗,但功能並不是你認為的那樣。只要相信我就可以了。)

文檔沒有提到這樣做,甚至可能嗎?

如果您已在標頭中定義了NSMenuItem並通過NIB連接它,則只需調用隱藏屬性即可。

[myMenuItem setHidden:YES];

“灰色”menuItem將是[myMenuItem setEnabled: NO];

我相信這個功能可能已改為

[menuItem isHidden: YES]

https://developer.apple.com/documentation/appkit/nsmenuitem

Obj-C屬性被命名為“隱藏”。 這意味着,底層布爾成員名為_hidden,並為您自動合成3個訪問器:2個getter: isHiddenhidden加上一個setter: setHidden

在Obj-C中,使用點表示法只能使用以下方法設置屬性:

myMenuItem.hidden = YES; // or NO

或者在正常消息中:

[myMenuItem setHidden:YES]; // or NO

獲取值可以是myMenuItem.hiddenmyMenuItem.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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM