Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Sample code. Uses DDHotKey + ShortcutRecorder to let the user define global hotkeys.
Objective-C C
branch: master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
DDHotKey
English.lproj
ShortcutRecorder
WhatKeys.xcodeproj
README.markdown
WKHotKeyAssignment.h
WKHotKeyAssignment.m
WKListEditorViewController.h
WKListEditorViewController.m
WKListEditorWindowController.h
WKListEditorWindowController.m
WhatKeys-Info.plist
WhatKeysAppDelegate.h
WhatKeysAppDelegate.m
WhatKeys_Prefix.pch
main.m

README.markdown

[Presented at the joint meeting of CocoaHeads-NYC and the New York FileMaker Developers Group, July 8, 2010. I've heavily edited this since giving the presentation. The original text was much more sparse.]

The notes below are online.

Mixed audience for this meeting

Therefore:

  • Partly an intro to global hotkeys
  • Partly a glimpse into Cocoa development, for newcomers
  • Will show two apps, one trivial and one more advanced

App One: "Hello World" of hot keys

App is called "Hotness".

  • A minimal complete app
  • Bare-bones UI with five buttons (actually a matrix of five button cells)
  • Just one Objective-C class, four methods
  • Hotkey actions are defined in five AppleScript files
  • Uses a third-party library called DDHotKey which makes registering hotkeys very simple

Cocoa patterns and techniques:

  • target-action (the button matrix has a target)
  • delegation (the application object has a delegate)
  • calling AppleScript from Cocoa
  • bringing your application to the front (see the hotkey mapping for Control-0)

App Two: more realistic

App is called "WhatKeys".

  • User can create, modify, and remove hotkey assignments
  • Hotkeys can be mapped to either an AppleScript file or AppleScript code entered directly
  • Like Hotness, uses DDHotKey
  • Uses a third-party library called ShortcutRecorder for entering and displaying keyboard shortcuts

Cocoa patterns and techniques are same as in Hotness, plus:

  • MVC ("Model-View-Controller")
    • a model class (WKHotKeyAssignment)
    • view controller and window controller ("coordinating controllers")
    • array controller ("mediating controller")
  • bindings
  • properties
  • responder chain
  • user defaults and property lists (for saving the user's hotkey assignments)
  • handling NSError

Where to get

Here are links for the source:

To compile the example code you'll need Apple's Developer Tools, which you can get for free here (requires registration). After installing the Dev Tools, double-click an xcodeproj file to open the project in Xcode.

Something went wrong with that request. Please try again.