Magnet

CI Release version License: MIT Carthage compatible Version Platform SPM supported

在 macOS 中自定义全局热键。支持普通热键和像 Alfred.app 那样的双击热键。

也支持沙盒应用。

使用方法

CocoaPods

pod 'Magnet'

Carthage

github "Clipy/Magnet"

从 Magnet v2.x 升级到 v3.x

参见 从 Magnet v2.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()
}        

注册双击热键

添加 ⌘ 双击 热键。

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 双击 热键。

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)
}

支持的修饰键

双击热键只支持以下修饰键。

注销热键

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)

依赖

如何构建

  1. 移动到项目根目录
  2. 使用 carthagegit submodule 安装依赖库
  3. carthage checkout --use-submodulesgit submodule update --init --recursive
  4. 在 Xcode 中打开 Magnet.xcworkspace
  5. 构建。