diff options
| author | Tomáš Znamenáček | 2014-08-05 17:52:18 +0200 | 
|---|---|---|
| committer | Tomáš Znamenáček | 2015-01-07 15:33:45 +0100 | 
| commit | 4223f9b6b87675effad767ed51f352f529ad670b (patch) | |
| tree | 8d5e69ae74d56ff337a08528c625b616723d411c /Framework | |
| parent | 90cf1f856c9d3714df6c173e770e94e50621ee82 (diff) | |
| download | MASShortcut-4223f9b6b87675effad767ed51f352f529ad670b.tar.bz2 | |
Implemented NSCopying for MASShortcut.
This makes it possible to use shortcuts as collection keys.
Diffstat (limited to 'Framework')
| -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 | 
