diff options
Diffstat (limited to 'Framework/MASShortcut.m')
| -rw-r--r-- | Framework/MASShortcut.m | 59 |
1 files changed, 35 insertions, 24 deletions
diff --git a/Framework/MASShortcut.m b/Framework/MASShortcut.m index 20d4c11..133ce38 100644 --- a/Framework/MASShortcut.m +++ b/Framework/MASShortcut.m @@ -8,29 +8,7 @@ static NSString *const MASShortcutModifierFlags = @"ModifierFlags"; NSUInteger _modifierFlags; // 0 if empty } -#pragma mark - - -+ (BOOL)supportsSecureCoding -{ - return YES; -} - -- (void)encodeWithCoder:(NSCoder *)coder -{ - [coder encodeInteger:(self.keyCode != NSNotFound ? (NSInteger)self.keyCode : - 1) forKey:MASShortcutKeyCode]; - [coder encodeInteger:(NSInteger)self.modifierFlags forKey:MASShortcutModifierFlags]; -} - -- (instancetype)initWithCoder:(NSCoder *)decoder -{ - self = [super init]; - if (self) { - NSInteger code = [decoder decodeIntegerForKey:MASShortcutKeyCode]; - self.keyCode = (code < 0 ? NSNotFound : (NSUInteger)code); - self.modifierFlags = [decoder decodeIntegerForKey:MASShortcutModifierFlags]; - } - return self; -} +#pragma mark Initialization - (instancetype)initWithKeyCode:(NSUInteger)code modifierFlags:(NSUInteger)flags { @@ -52,7 +30,7 @@ static NSString *const MASShortcutModifierFlags = @"ModifierFlags"; return [[self alloc] initWithKeyCode:event.keyCode modifierFlags:event.modifierFlags]; } -#pragma mark - Shortcut accessors +#pragma mark Shortcut Accessors - (void)setModifierFlags:(NSUInteger)value { @@ -221,4 +199,37 @@ static NSString *const MASShortcutModifierFlags = @"ModifierFlags"; return (count ? [NSString stringWithCharacters:chars length:count] : @""); } +#pragma mark NSCoding + +- (void)encodeWithCoder:(NSCoder *)coder +{ + [coder encodeInteger:(self.keyCode != NSNotFound ? (NSInteger)self.keyCode : - 1) forKey:MASShortcutKeyCode]; + [coder encodeInteger:(NSInteger)self.modifierFlags forKey:MASShortcutModifierFlags]; +} + +- (instancetype)initWithCoder:(NSCoder *)decoder +{ + self = [super init]; + if (self) { + NSInteger code = [decoder decodeIntegerForKey:MASShortcutKeyCode]; + self.keyCode = (code < 0 ? NSNotFound : (NSUInteger)code); + self.modifierFlags = [decoder decodeIntegerForKey:MASShortcutModifierFlags]; + } + return self; +} + +#pragma mark NSSecureCoding + ++ (BOOL)supportsSecureCoding +{ + return YES; +} + +#pragma mark NSCopying + +- (instancetype) copyWithZone:(NSZone *)zone +{ + return [[self class] shortcutWithKeyCode:_keyCode modifierFlags:_modifierFlags]; +} + @end |
