【问题标题】:In Swift 2, what is the proper way to disable a NSMenuItem?在 Swift 2 中,禁用 NSMenuItem 的正确方法是什么?
【发布时间】:2016-02-10 06:03:17
【问题描述】:

有一个公共启用的属性,但将其设置为 false 无效。

startItem.enabled = false

我目前的解决方案是将操作的 Selector 设置为空字符串。

var startItem = NSMenuItem(title: "Start", action: Selector(""), keyEquivalent: "")

这感觉不直观,为什么您可以将 enabled 设置为 false 但没有效果。

【问题讨论】:

  • 你在开玩笑吗...您刚刚发布了一个问题,并在 sec 内发布了一个答案...最好是删除问题
  • 有一个“回答你自己的问题”复选框。另外,我没有接受自己的答案,因为我不知道这是否正确。这个问题我有困难。谷歌给了我Objective C,2004年的可可答案和“我的项目在我没想到时被禁用”。这个问题以前也没有被问过。我认为使用 validateuserinterfaceitem 有更好的方法。 blog.stackoverflow.com/2011/07/…
  • 真正发生的事情是我花了几个小时寻找如何做到这一点。我忽略了“将 autoenablesItems 设置为 false”,因为我尝试了“startItem.autoenablesItems = false”。然后,当我发布堆栈溢出的帖子时,我喜欢告诉别人我所做和研究的内容。当我回溯我的步骤时,我想现在我已经完成了 80% 的帖子,我决定最好以“问答”的形式进行知识分享。我希望这篇文章对其他人有所帮助,或者如果它确实质量很差,那么模组将其删除。如果您觉得较晚,请使用标记按钮。
  • 对不起,哥们..不知道你的答案 +1 :) 如果它对其他人有价值
  • 您应该按照 SO 准则接受您的答案...

标签: swift macos cocoa swift2 nsmenuitem


【解决方案1】:
startItem.enabled = false

除非您在父菜单上将 autoenableItems 设置为 false,否则将不起作用,如下所示:

let menu = NSMenu();
menu.autoenablesItems = false

https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/MenuList/Articles/EnablingMenuItems.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-18
    • 1970-01-01
    • 2014-12-08
    • 2021-08-29
    相关资源
    最近更新 更多