aboutsummaryrefslogtreecommitdiffstats
path: root/Framework/MASShortcutBinder.m
diff options
context:
space:
mode:
Diffstat (limited to 'Framework/MASShortcutBinder.m')
-rw-r--r--Framework/MASShortcutBinder.m25
1 files changed, 7 insertions, 18 deletions
diff --git a/Framework/MASShortcutBinder.m b/Framework/MASShortcutBinder.m
index 9b9f017..92ba6e8 100644
--- a/Framework/MASShortcutBinder.m
+++ b/Framework/MASShortcutBinder.m
@@ -23,7 +23,7 @@
- (void) dealloc
{
for (NSString *bindingName in [_actions allKeys]) {
- [self unbind:[self encodeBindingName:bindingName]];
+ [self unbind:bindingName];
}
}
@@ -41,8 +41,12 @@
- (void) bindShortcutWithDefaultsKey: (NSString*) defaultsKeyName toAction: (dispatch_block_t) action
{
+ NSAssert([defaultsKeyName rangeOfString:@"."].location == NSNotFound,
+ @"Illegal character in binding name (“.”), please see http://git.io/x5YS.");
+ NSAssert([defaultsKeyName rangeOfString:@" "].location == NSNotFound,
+ @"Illegal character in binding name (“ ”), please see http://git.io/x5YS.");
[_actions setObject:[action copy] forKey:defaultsKeyName];
- [self bind:[self encodeBindingName:defaultsKeyName]
+ [self bind:defaultsKeyName
toObject:[NSUserDefaultsController sharedUserDefaultsController]
withKeyPath:[@"values." stringByAppendingString:defaultsKeyName]
options:_bindingOptions];
@@ -53,7 +57,7 @@
[_shortcutMonitor unregisterShortcut:[_shortcuts objectForKey:defaultsKeyName]];
[_shortcuts removeObjectForKey:defaultsKeyName];
[_actions removeObjectForKey:defaultsKeyName];
- [self unbind:[self encodeBindingName:defaultsKeyName]];
+ [self unbind:defaultsKeyName];
}
- (void) registerDefaultShortcuts: (NSDictionary*) defaultShortcuts
@@ -76,18 +80,6 @@
#pragma mark Bindings
-static NSString *const MASDotSymbolReplacement = @"__dot__";
-
-- (NSString*) encodeBindingName: (NSString*) binding
-{
- return [binding stringByReplacingOccurrencesOfString:@"." withString:MASDotSymbolReplacement];
-}
-
-- (NSString*) decodeBindingName: (NSString*) binding
-{
- return [binding stringByReplacingOccurrencesOfString:MASDotSymbolReplacement withString:@"."];
-}
-
- (BOOL) isRegisteredAction: (NSString*) name
{
return !![_actions objectForKey:name];
@@ -95,7 +87,6 @@ static NSString *const MASDotSymbolReplacement = @"__dot__";
- (id) valueForUndefinedKey: (NSString*) key
{
- key = [self decodeBindingName:key];
return [self isRegisteredAction:key] ?
[_shortcuts objectForKey:key] :
[super valueForUndefinedKey:key];
@@ -103,8 +94,6 @@ static NSString *const MASDotSymbolReplacement = @"__dot__";
- (void) setValue: (id) value forUndefinedKey: (NSString*) key
{
- key = [self decodeBindingName:key];
-
if (![self isRegisteredAction:key]) {
[super setValue:value forUndefinedKey:key];
return;