macos - 禁用 "Share"子菜单

标签 macos cocoa menu submenu

Cocoa 会自动在我的应用程序的"file"菜单中添加一个“共享”子菜单:

Share menu

如何以编程方式禁用此菜单(或全局共享命令)?当用户尚未通过 IAP 购买应用程序时,我需要禁用它。

我似乎无法像使用 Save... 等其他命令那样使用 validateUserInterfaceItem

我通过this question了解该菜单使用 NSSharingService。但是,从该问题中尚不清楚如何禁用自动添加的菜单。

我可以对索引进行硬编码并禁用菜单项,但这相当令人讨厌。此外,由于该应用程序是本地化的,因此使用该项目的标题也会很恶心。

最佳答案

如果您开发基于文档的应用程序,请子类化 NSDocumentController 并覆盖 allowsAutomaticShareMenu返回false

class DocumentController: NSDocumentController {

    override var allowsAutomaticShareMenu: Bool {

        return false
    }
}

关于macos - 禁用 "Share"子菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52707912/

相关文章:

service - Prism 应用程序 CAL 中的菜单服务

jquery - 如何与hoverIntent集成?

macos - macOS 是否有类似 `#![windows_subsystem(windows)]` 的属性?

cocoa - 使用 NSSet 过滤 NSArray 时使用 NONE 时出现问题

macos - 从文件夹创建 ISO 镜像

cocoa - 从泛型类传递自引用

objective-c - 如何在多个类中使用同一个类别?

html - 带有水平子菜单的 CSS 垂直菜单

javascript - 在 Mac 上将 Behat 和 Mink 与 Selenium 和 Chrome 或 Safari 或 Firefox 连接

macos - 使用 XPC 并行化 Cocoa WebView 渲染