The best control to record shortcuts on macOS
- Objective-C framework developed with Swift in mind
- Easily stylable
- Translated into 23 languages
- Supports macOS Accessibility
- Thoroughly documented and tested
- Mac App Store approved
- End-to-end Interface Builder integration
The framework comes with:
SRRecorderControl
to render and capture user inputSRRecorderControlStyle
for custom stylingSRShortcut
that represents a shortcut modelSRGlobalShortcutMonitor
to turn the shortcut into an action by registering a global hot keySRLocalShortcutMonitor
for manual handling in the responder chain andNSEvent
monitorsSRShortcutController
for smooth Cocoa Bindings and seamless Interface Builder integrationSRShortcutValidator
to check validity of the shortcut against Cocoa key equivalents and global hot keysNSValueTransformer
andNSFormatter
subclasses for custom alternations
import ShortcutRecorder
let defaults = NSUserDefaultsController.shared
let keyPath = "values.shortcut"
let options = [NSBindingOption.valueTransformerName: NSValueTransformerName.keyedUnarchiveFromDataTransformerName]
let beepAction = ShortcutAction(keyPath: keyPath, of: defaults) { _ in
NSSound.beep()
return true
}
GlobalShortcutMonitor.shared.addShortcutAction(beepAction)
let recorder = RecorderControl()
recorder.bind(.value, to: defaults, withKeyPath: keyPath, options: options)
recorder.objectValue = Shortcut(keyEquivalent: "⇧⌘A")
The framework supports module maps, explicit linking is not required: simply import ShortcutRecorder
/ #import <ShortcutRecorder/ShortcutRecorder.h>
pod 'ShortcutRecorder', '~> 3.0'
github "Kentzo/ShortcutRecorder" ~> 3.0
Prebuilt frameworks are available.
Add the submodule:
git submodule add git://github.com/Kentzo/ShortcutRecorder.git
Then drag'n'drop into Xcode workspace of your project.
- The Documentation playground covers all parts of the framework (see in Xcode)
- The Inspector app is useful during development of custom styles
- Read about Styling and special notes regarding Cocoa's Key Equivalents.
Still have questions? Create an issue.
Paid support is available for custom alterations, help with integration and general advice regarding Cocoa development.