Magnet
在 macOS 中自定义全局快捷键。支持常用的快捷键和双击快捷键,如 Alfred.app。
同时也支持沙盒应用程序。
用法
CocoaPods
pod 'Magnet'
Carthage
github "Clipy/Magnet"
从 Magnet v2.x 升级到 v3.x
示例
注册普通快捷键
添加 ⌘ + Control + B
快捷键。
if let keyCombo = KeyCombo(key: .b, cocoaModifiers: [.command, .control]]) {
let hotKey = HotKey(identifier: "CommandControlB", keyCombo: keyCombo, target: self, action: #selector())
hotKey.register() // or HotKeyCenter.shared.register(with: hotKey)
}
或者可以使用闭包。
if let keyCombo = KeyCombo(key: .b, cocoaModifiers: [.command, .control]) {
let hotKey = HotKey(identifier: "CommandControlB", keyCombo: keyCombo) { hotKey in
// Called when ⌘ + Control + B is pressed
}
hotKey.register()
}
注册双击快捷键
添加 ⌘ double tap
快捷键。
if let keyCombo = KeyCombo(doubledCocoaModifiers: .command) {
let hotKey = HotKey(identifier: "CommandDoubleTap", keyCombo: keyCombo, target: self, action: #selector())
hotKey.register() // or HotKeyCenter.shared.register(with: hotKey)
}
添加 Control double tap
快捷键。
if let keyCombo = KeyCombo(doubledCarbonModifiers: controlKey) {
let hotKey = HotKey(identifier: "ControlDoubleTap", keyCombo: keyCombo, target: self, action: #selector())
hotKey.register() // or HotKeyCenter.shared.register(with: hotKey)
}
支持修饰符
双击快捷键只支持以下修饰符。
- 命令键
NSEventModifierFlags.command
或cmdKey
- Shift 键
NSEventModifierFlags.shift
或shiftKey
- 选项键
NSEventModifierFlags.option
或optionKey
- 控制键
NSEventModifierFlags.control
或controlKey
注销快捷键
HotKeyCenter.shared.unregisterAll()
或者
HotKeyCenter.shared.unregisterHotKey(with: "identifier")
或者
let hotKey = HotKey(identifier: "identifier", keyCombo: KeyCombo, target: self, action: #selector())
hotKey.unregister() // or HotKeyCenter.shared.unregister(with: hotKey)
依赖项
如何构建
- 移动到项目根目录
- 使用
carthage
或git submodule
安装依赖库 carthage checkout --use-submodules
或git submodule update --init --recursive
- 在 Xcode 中打开
Magnet.xcworkspace
- 构建。