作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在用 Swift 编写一个额外的菜单,它会打开一个窗口供用户输入一些数据。为该窗口复制粘贴键盘快捷键会很方便。
我在我的额外菜单中添加了一个编辑子菜单,以便我定义键盘快捷键。我已将它们链接到 Controller 中的方法,但是当键入快捷命令(例如 command-v)时,它不会调用关联的方法。
我应该如何启用额外菜单的快捷方式?
最佳答案
我不知道这是否是正确的方法,但我设法根据这篇文章中的方法让它工作: Cocoa Keyboard Shortcuts in Dialog without an Edit Menu
我创建了一个类似的 MyApplication 类,并将第一响应者的复制、粘贴等操作链接到我的菜单。
我在为最新的 swift 获取正确的语法时遇到了一些麻烦。这是我使用的代码:
import Cocoa
class MyApplication: NSApplication {
override func sendEvent(event: NSEvent) {
if event.type == NSEventType.KeyDown {
if ((event.modifierFlags.rawValue) & (NSEventModifierFlags.CommandKeyMask.rawValue) > 0) {
switch event.charactersIgnoringModifiers!.lowercaseString {
case "x":
if NSApp.sendAction(Selector("cut:"), to:nil, from:self) { return }
case "c":
if NSApp.sendAction(Selector("copy:"), to:nil, from:self) { return }
case "v":
if NSApp.sendAction(Selector("paste:"), to:nil, from:self) { return }
case "z":
if NSApp.sendAction(Selector("undo:"), to:nil, from:self) { return }
case "a":
if NSApp.sendAction(Selector("selectAll:"), to:nil, from:self) { return }
default:
break
}
}
}
return super.sendEvent(event)
}
}
关于macos - 如何为 OSX 菜单额外启用复制和粘贴,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33313525/
我是一名优秀的程序员,十分优秀!