Record shortcuts in macOS, like Alfred App.
- macOS 10.10+
- Xcode 10.0+
- Swift 4.2+
pod 'KeyHolder'
github "Clipy/KeyHolder"
github "Clipy/Magnet"
Set default key combo.
let recordView = RecordView(frame: CGRect.zero)
recordView.tintColor = NSColor(red: 0.164, green: 0.517, blue: 0.823, alpha: 1)
let keyCombo = KeyCombo(doubledModifiers: .command)
recordView.keyCombo = keyComboSome delegate methods
func recordViewShouldBeginRecording(_ recordView: RecordView) -> Bool
func recordView(_ recordView: RecordView, canRecordShortcut keyCombo: KeyCombo) -> Bool
func recordViewDidClearShortcut(_ recordView: RecordView)
func recordViewDidEndRecording(_ recordView: RecordView)Or you can use closures.
let recordView = RecordView(frame: CGRect.zero)
recordView.didChange = { keyCombo in
guard let keyCombo = keyCombo else { return } // Clear shortcut
// Changed new shortcut
}The source code is dependent on hotkey library.
- Move to the project root directory
- Install dependency library with
carthageorgit submodule carthage checkout --use-submodulesorgit submodule init && git submodule update- Open
KeyHolder.xcworkspaceon Xcode. - build.
- Fork it ( https://github.com/Clipy/KeyHolder/fork )
- Create your feature branch (
git checkout -b my-new-feature) - Commit your changes (
git commit -am 'Add some feature') - Push to the branch (
git push origin my-new-feature) - Create a new Pull Request

