         if let keyCode = KeyCode(rawValue: keyCodeInt) where recording && validateModifiers(inputModifiers) {
             let modifiers = KeyTransformer.cocoaToCarbonFlags(theEvent.modifierFlags)
             if let keyCombo = KeyCombo(keyCode: keyCode, carbonModifiers: modifiers) {
-                if delegate?.recordView(self, canRecordShortcut: keyCombo) ?? true {
+                if delegate?.recordView(self, canRecordKeyCombo: keyCombo) ?? true {
                     self.keyCombo = keyCombo
+                    delegate?.recordView(self, didChangeKeyCombo: keyCombo)
                     endRecording()
                     return true
                 }


public protocol RecordViewDelegate: class {
    func recordViewShouldBeginRecording(recordView: RecordView) -> Bool
    func recordView(recordView: RecordView, canRecordShortcut keyCombo: KeyCombo) -> Bool
    func recordViewDidClearShortcut(recordView: RecordView)
    func recordViewDidEndRecording(recordView: RecordView)
}


            return false
        } else if let keyCode = KeyCode(rawValue: keyCodeInt) where recording && KeyTransformer.containsFunctionKey(keyCodeInt) {
            if let keyCombo = KeyCombo(keyCode: keyCode, carbonModifiers: 0) {
                if delegate?.recordView(self, canRecordKeyCombo: keyCombo) ?? true {
                    self.keyCombo = keyCombo
                    delegate?.recordView(self, didChangeKeyCombo: keyCombo)
                    endRecording()
                    return true
                }
