Xcode MASShortcut框架在Swift项目中的快速使用
我在Swift OSX项目中实现()时遇到问题,无法侦听全局热键。我已经通过CocoaPods导入了框架,我有一个MassShortCutView实例:Xcode MASShortcut框架在Swift项目中的快速使用,xcode,swift,macos,cocoa,macos-carbon,Xcode,Swift,Macos,Cocoa,Macos Carbon,我在Swift OSX项目中实现()时遇到问题,无法侦听全局热键。我已经通过CocoaPods导入了框架,我有一个MassShortCutView实例: @IBOutlet weak var testShortcutView:MASShortcutView! 我还了解了如何使用快捷方式监视和触发某些内容(请告诉我这是否正确): 这里的问题是,我如何从MassShortCutView中获取关键代码和修改标签? 我真的提前感谢你们,我到处都找了,但我找不到一个关于如何在swift上这样做的例子
@IBOutlet weak var testShortcutView:MASShortcutView!
我还了解了如何使用快捷方式监视和触发某些内容(请告诉我这是否正确):
这里的问题是,我如何从MassShortCutView中获取关键代码和修改标签?
我真的提前感谢你们,我到处都找了,但我找不到一个关于如何在swift上这样做的例子。我只能找到objective-c,我想不出来。下面的代码将为Cmd+Shift+K组合键注册快捷方式处理程序
let shortcut = MASShortcut.init(keyCode: UInt(kVK_ANSI_K), modifierFlags: UInt(NSEventModifierFlags.CommandKeyMask.rawValue + NSEventModifierFlags.ShiftKeyMask.rawValue))
MASShortcutMonitor.sharedMonitor().registerShortcut(shortcut, withAction: {
print("Hello world")
})
Cmd和Shift-修改键。您应该在modifierFlags参数中设置它们。NSEventModifierFlags枚举中提供了可能值的完整列表
为方便起见,我将示例项目放在github上:
处理快捷方式更改的:
shortcutView.shortcutValueChange = { (sender) in
let callback: (() -> Void)!
if self.shortcutView.shortcutValue.keyCodeStringForKeyEquivalent == "k" {
callback = {
print("K shortcut handler")
}
} else {
callback = {
print("Default handler")
}
}
MASShortcutMonitor.sharedMonitor().registerShortcut(self.shortcutView.shortcutValue, withAction: callback)
}
我已推动回购协议的变更。我建议尝试以下场景:
使用快捷方式视图:
let shortcut = MASShortcut(keyCode: kVK_ANSI_K, modifierFlags: [.command, .shift])
MASShortcutMonitor.shared()?.register(shortcut, withAction: {
print("hello")
})
至少我该如何从中获得keycode和modifierFlags?请大家注意,这是我的应用程序的最后一个细节。我的这篇博文可能会有所帮助:谢谢回复!不幸的是,这不是问题所在,我知道如何创建硬编码的快捷方式。但我不明白如何使用MASShortcutView让用户设置自己的快捷方式。你能把这个加在你的答案上吗?@wavves好的,我会这么做的,有人花时间帮我真是太好了。Swift是一个向新手开放应用程序开发的好尝试,但它仍然缺乏翻译所有objective-c示例的支持。应鼓励开发人员更新其文档,以包括swift支持。谢谢@谢谢你的反馈。我在这里的某个地方看到了一个框架创建者(zoul)。我们可以提供您的反馈。关于整个情况,我相信iOS/OSX软件开发的主要部分将在1-2年内从Obj-C转移到Swift。一旦实现了这一点,所有不断发展的框架都将获得Swift的一流支持。所以这只是时间问题。此外,我渴望看到Swift 3发布后会发生什么。它是否真的会跨平台?有一天,我可以在SwiftAfter中为iOS/OSX,尤其是Android和Linux开发应用程序。我又有一件事困扰着我,当我改变以前的快捷方式时,我怎么能注销它们呢?当我设置一个新的,前一个继续工作。
let shortcut = MASShortcut(keyCode: kVK_ANSI_K, modifierFlags: [.command, .shift])
MASShortcutMonitor.shared()?.register(shortcut, withAction: {
print("hello")
})