From 1cebcd3acf013b2b09087750e79dda7b90e93b5f Mon Sep 17 00:00:00 2001 From: Tomáš Znamenáček Date: Tue, 5 Aug 2014 16:42:31 +0200 Subject: Removed -data and shortcutWithData: from MASShortcut. Using NSKeyedUnarchiver and NSKeyedArchiver directly is almost the same amount of typing and it’s much clearer what goes on. --- Framework/MASShortcut+UserDefaults.m | 4 ++-- Framework/MASShortcut.h | 2 -- Framework/MASShortcut.m | 11 ----------- Framework/MASShortcutView+UserDefaults.m | 6 +++--- 4 files changed, 5 insertions(+), 18 deletions(-) diff --git a/Framework/MASShortcut+UserDefaults.m b/Framework/MASShortcut+UserDefaults.m index 94b035d..006c579 100644 --- a/Framework/MASShortcut+UserDefaults.m +++ b/Framework/MASShortcut+UserDefaults.m @@ -39,7 +39,7 @@ + (void)setGlobalShortcut:(MASShortcut *)shortcut forUserDefaultsKey:(NSString *)userDefaultsKey { - NSData *shortcutData = shortcut.data; + NSData *shortcutData = [NSArchiver archivedDataWithRootObject:shortcut]; if (shortcutData) [[NSUserDefaults standardUserDefaults] setObject:shortcutData forKey:userDefaultsKey]; else @@ -90,7 +90,7 @@ void *MASShortcutUserDefaultsContext = &MASShortcutUserDefaultsContext; - (void)installHotKeyFromUserDefaults { NSData *data = [[NSUserDefaults standardUserDefaults] dataForKey:_userDefaultsKey]; - MASShortcut *shortcut = [MASShortcut shortcutWithData:data]; + MASShortcut *shortcut = [NSKeyedUnarchiver unarchiveObjectWithData:data]; if (shortcut == nil) return; self.monitor = [MASShortcut addGlobalHotkeyMonitorWithShortcut:shortcut handler:self.handler]; } diff --git a/Framework/MASShortcut.h b/Framework/MASShortcut.h index 6873dd9..aa3dfb0 100644 --- a/Framework/MASShortcut.h +++ b/Framework/MASShortcut.h @@ -9,12 +9,10 @@ @property (nonatomic, readonly) NSString *keyCodeString; @property (nonatomic, readonly) NSString *keyCodeStringForKeyEquivalent; @property (nonatomic, readonly) NSString *modifierFlagsString; -@property (nonatomic, readonly) NSData *data; - (instancetype)initWithKeyCode:(NSUInteger)code modifierFlags:(NSUInteger)flags; + (instancetype)shortcutWithKeyCode:(NSUInteger)code modifierFlags:(NSUInteger)flags; + (instancetype)shortcutWithEvent:(NSEvent *)anEvent; -+ (instancetype)shortcutWithData:(NSData *)aData; @end diff --git a/Framework/MASShortcut.m b/Framework/MASShortcut.m index 5109a1f..20d4c11 100644 --- a/Framework/MASShortcut.m +++ b/Framework/MASShortcut.m @@ -52,19 +52,8 @@ static NSString *const MASShortcutModifierFlags = @"ModifierFlags"; return [[self alloc] initWithKeyCode:event.keyCode modifierFlags:event.modifierFlags]; } -+ (instancetype)shortcutWithData:(NSData *)data -{ - id shortcut = (data ? [NSKeyedUnarchiver unarchiveObjectWithData:data] : nil); - return shortcut; -} - #pragma mark - Shortcut accessors -- (NSData *)data -{ - return [NSKeyedArchiver archivedDataWithRootObject:self]; -} - - (void)setModifierFlags:(NSUInteger)value { _modifierFlags = MASPickCocoaModifiers(value); diff --git a/Framework/MASShortcutView+UserDefaults.m b/Framework/MASShortcutView+UserDefaults.m index a84f0c9..55584f4 100644 --- a/Framework/MASShortcutView+UserDefaults.m +++ b/Framework/MASShortcutView+UserDefaults.m @@ -72,7 +72,7 @@ void *kShortcutValueObserver = &kShortcutValueObserver; // Read initial shortcut value from user preferences NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; NSData *data = [defaults dataForKey:_userDefaultsKey]; - _shortcutView.shortcutValue = [MASShortcut shortcutWithData:data]; + _shortcutView.shortcutValue = [NSKeyedUnarchiver unarchiveObjectWithData:data]; // Observe user preferences to update shortcut value when it changed [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(userDefaultsDidChange:) name:NSUserDefaultsDidChangeNotification object:defaults]; @@ -88,7 +88,7 @@ void *kShortcutValueObserver = &kShortcutValueObserver; _internalShortcutChange = YES; NSData *data = [note.object dataForKey:_userDefaultsKey]; - _shortcutView.shortcutValue = [MASShortcut shortcutWithData:data]; + _shortcutView.shortcutValue = [NSKeyedUnarchiver unarchiveObjectWithData:data]; _internalShortcutChange = NO; } @@ -112,7 +112,7 @@ void *kShortcutValueObserver = &kShortcutValueObserver; _internalPreferenceChange = YES; NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; - [defaults setObject:(shortcut.data ?: [NSKeyedArchiver archivedDataWithRootObject:nil]) forKey:_userDefaultsKey]; + [defaults setObject:[NSKeyedArchiver archivedDataWithRootObject:shortcut] forKey:_userDefaultsKey]; [defaults synchronize]; _internalPreferenceChange = NO; -- cgit v1.2.3