gpt4 book ai didi

macos - 如何以编程方式添加 NSMenu?

转载 作者:搜寻专家 更新时间:2023-10-31 22:08:32 25 4
gpt4 key购买 nike

我没有使用 storyboard 和 xib,只使用了代码。我想以编程方式添加“编辑”菜单。我的问题是

1)如何显示“编辑”菜单/评论问题1)需要输入什么代码?

2) swift 提供了复制和粘贴等操作吗?

class TestManager: NSObject {

// ....
override init() {
let editMenuItems = [
NSMenuItem(title: "Cut", action: nil(/* Question 2) */), keyEquivalent: ""),
NSMenuItem(title: "Copy", action: nil, keyEquivalent: ""),
NSMenuItem(title: "Paste", action: nil, keyEquivalent: ""),
]

for editMenuItem in editMenuItems {
self.editMenu.addItem(editMenuItem)
}

// Qustion 1) .. show "Edit" Menu
}
}

最佳答案

您没有显示 self.editMenu 的来源。

在任何情况下,您都需要从 NSApplication 实例中获取 mainMenu 并将菜单项添加到将您的菜单作为其子菜单的菜单项。所以,像这样:

var editMenuItem = NSMenuItem()
editMenuItem.title = "Edit"
var mainMenu = NSMenu()
mainMenu.addItem(editMenuItem)
mainMenu.setSubmenu(self.editMenu, forItem:editMenuItem)
NSApplication.sharedApplication().mainMenu = mainMenu

我不使用 Swift,因此其中可能存在一些错误。

至于编辑菜单项使用什么 Action 选择器,最简单的方法是创建一个主菜单 NIB 来检查它。查看用于现成编辑菜单的菜单项的操作选择器。例如,您会发现 Copy 项使用 copy: 选择器。这可以在 Swift 中表示为一个字符串,"copy:"

关于macos - 如何以编程方式添加 NSMenu?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28781974/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com