- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 Swift 编写一个针对 macOS Sierra 的应用程序。
我有一个 NSMenuItem,我想将其变灰(这样用户甚至无法选择它)。
我已在 Storyboard 中将其父菜单 AutoEnableItems 设置为 FALSE,并通过登录我的代码验证它仍然为 false。
当我将 NSMenuItem 的 isEnabled 属性设置为 false 时,它的作用是,当我选择该菜单项时,不会调用与该菜单项关联的操作(这很好),但菜单仍然可选。
我想要的是它变灰,并且显然用户无法选择。
最佳答案
根据文档,您所做的事情听起来确实正确。
但是,我的方法是实现 validateMenuItem
在我的 AppDelegate 类中。这个方法有点烦人,因为每个菜单项都会调用它,并且菜单项作为参数传递。所以你必须打开参数,看看它是否是你想要禁用的菜单项,然后返回 false。
这里有一个 Objective-C 示例:https://developer.apple.com/documentation/objectivec/nsobject/1518160-validatemenuitem
Swift 示例可能如下所示:
override func validateMenuItem(_ menuItem: NSMenuItem) -> Bool {
switch menuItem.tag {
case MenuItemTags.SignOut:
return signOutEnabled()
case MenuItemTags.CheckForUpdates:
return updatesEnabled()
default:
return true
}
}
您可能已经读过这篇文章,但这里有很多血淋淋的细节:https://developer.apple.com/library/content/documentation/Cocoa/Conceptual/MenuList/Articles/EnablingMenuItems.html
但是,正如我所说,这篇文章似乎表明您正在尝试的内容是正确的,所以谁知道呢?我可以肯定地说我的方法有效。
关于swift - 如何使 NSMenuItem 变灰?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46005253/
经过很长时间的尝试,我仍然找不到解决问题的正确方法。问题是将这个灰度图像分割成 3 种不同的颜色:边界应该是黑色,边界的内部空间应该是白色,所有其他介质应该是黑色。 我尝试了几种不同的方法,包括直接强
这个问题在这里已经有了答案: What is the difference between "./somescript.sh" and ". ./somescript.sh" (4 个答案) 关闭
我是一名优秀的程序员,十分优秀!