加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

osx – 无法设置NSMenuItem的子菜单(FinderSync扩展)

发布时间:2020-12-14 05:59:19 所属栏目:百科 来源:网络整理
导读:我想为Swift / Cocoa中的Finder Sync扩展创建一个级联子菜单。我有以下代码: override func menuForMenuKind(menuKind: FIMenuKind) - NSMenu! { let m = NSMenu(title: "") let mi1 = NSMenuItem(title: "item1",action: nil,keyEquivalent: "") let mi11
我想为Swift / Cocoa中的Finder Sync扩展创建一个级联子菜单。我有以下代码:
override func menuForMenuKind(menuKind: FIMenuKind) -> NSMenu! {
    let m = NSMenu(title: "")
    let mi1 = NSMenuItem(title: "item1",action: nil,keyEquivalent: "")
    let mi11 = NSMenuItem(title: "item11",keyEquivalent: "")

    let m2 = NSMenu(title: "")
    let mi2 = NSMenuItem(title: "item2",keyEquivalent: "")
    m2.addItem(mi2)

    m.addItem(mi1)
    m.addItem(mi11)
    m.setSubmenu(m2,forItem: mi1)
    return m
}

所以我想实现的是:

item1->
       item2 
item11

所以我实际得到的是一个flat1和item11菜单列表。

任何提示?

我向苹果提出了一个错误(#18810635),得到一个反应,它是一个(#18531883),它仍然打开。

在OpenRadar http://openradar.appspot.com/radar?id=5772557445758976上发布文件副本,发送给开发商倡导者。

如果任何人知道的命运#18531883 – 这是Finder同步扩展的核心理由?

我已经将项目升级到Swift 2.0,并最终做了一个工作的子菜单。过帐解决方案:
override func menuForMenuKind(menuKind: FIMenuKind) -> NSMenu! {
    let main = NSMenu()
    let submenu = NSMenu()
    let mainDropdown = NSMenuItem(title: "Some option group",keyEquivalent: "")
    main.addItem(mainDropdown)
    m.setSubmenu(submenu,forItem: mainDropdown)


    submenu.addItem(NSMenuItem(title: "Option 1",keyEquivalent: ""))
    submenu.addItem(NSMenuItem(title: "Option 2",keyEquivalent: ""))
    return main
}

这将只适用于Mac OS 10.11,10.10.5仍然有无法生成子菜单的错误。所以一个好的appraoch是生成一个平面菜单, 10.11,以及从el capitan开始的级联。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读