diff --git a/AppController.m b/AppController.m index d9a64fa..2e8cb3d 100755 --- a/AppController.m +++ b/AppController.m @@ -27,6 +27,10 @@ [[NSUserDefaults standardUserDefaults] registerDefaults:[NSDictionary dictionaryWithObjectsAndKeys: [NSDictionary dictionaryWithObjects:[NSArray arrayWithObjects:[NSNumber numberWithInt:9],[NSNumber numberWithLong:1179648],nil] forKeys:[NSArray arrayWithObjects:@"keyCode",@"modifierFlags",nil]], @"ShortcutRecorder mainHotkey", + [NSNumber numberWithInt:10], + @"displayNum", + [NSNumber numberWithInt:40], + @"displayLen", [NSNumber numberWithInt:0], @"menuIcon", [NSNumber numberWithFloat:.25], @@ -65,7 +69,10 @@ // Initialize the FlycutOperator flycutOperator = [[FlycutOperator alloc] init]; - [flycutOperator awakeFromNib]; + [flycutOperator awakeFromNibDisplaying:[[NSUserDefaults standardUserDefaults] integerForKey:@"displayNum"] + withDisplayLength:[[NSUserDefaults standardUserDefaults] integerForKey:@"displayLen"] + withSaveSelector:@selector(savePreferencesOnDict:) + forTarget:self]; [bezel setColor:NO]; @@ -126,6 +133,14 @@ [NSApp activateIgnoringOtherApps: YES]; } +-(void)savePreferencesOnDict:(NSMutableDictionary *)saveDict +{ + [saveDict setObject:[NSNumber numberWithInt:[[NSUserDefaults standardUserDefaults] integerForKey:@"displayLen"]] + forKey:@"displayLen"]; + [saveDict setObject:[NSNumber numberWithInt:[[NSUserDefaults standardUserDefaults] integerForKey:@"displayNum"]] + forKey:@"displayNum"]; +} + -(void)menuWillOpen:(NSMenu *)menu { NSEvent *event = [NSApp currentEvent]; diff --git a/Flycut-iOS/ViewController.swift b/Flycut-iOS/ViewController.swift index 8b445e5..348cd6a 100644 --- a/Flycut-iOS/ViewController.swift +++ b/Flycut-iOS/ViewController.swift @@ -22,13 +22,17 @@ class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSour tableView.delegate = self tableView.dataSource = self - flycut.awakeFromNib() + flycut.awake(fromNibDisplaying: 10, withDisplayLength: 140, withSave: #selector(savePreferences(toDict:)), forTarget: self) // The 10 isn't used in iOS right now and 140 characters seems to be enough to cover the width of the largest screen. NotificationCenter.default.addObserver(self, selector: #selector(self.checkForClippingAddedToClipboard), name: .UIPasteboardChanged, object: nil) NotificationCenter.default.addObserver(self, selector: #selector(self.applicationWillTerminate), name: .UIApplicationWillTerminate, object: nil) } + func savePreferences(toDict: NSMutableDictionary) + { + } + func checkForClippingAddedToClipboard() { let pasteboard = UIPasteboard.general.string diff --git a/FlycutOperator.h b/FlycutOperator.h index 9e4ba26..dfbe8fc 100644 --- a/FlycutOperator.h +++ b/FlycutOperator.h @@ -26,6 +26,9 @@ FlycutStore *favoritesStore; FlycutStore *stashedStore; + SEL saveSelector; + NSObject* saveTarget; + BOOL disableStore; } @@ -64,7 +67,7 @@ // Initialization / cleanup related -(void)applicationWillTerminate;; --(void)awakeFromNib; +-(void)awakeFromNibDisplaying:(int) displayNum withDisplayLength:(int) displayLength withSaveSelector:(SEL) selector forTarget:(NSObject*) target; // Favorites Store related -(bool)favoritesStoreIsSelected; diff --git a/FlycutOperator.m b/FlycutOperator.m index b7c3386..392632e 100644 --- a/FlycutOperator.m +++ b/FlycutOperator.m @@ -20,10 +20,6 @@ - (id)init { [[NSUserDefaults standardUserDefaults] registerDefaults:[NSDictionary dictionaryWithObjectsAndKeys: - [NSNumber numberWithInt:10], - @"displayNum", - [NSNumber numberWithInt:140], // do not commit with 140. Use 40 - @"displayLen", [NSNumber numberWithInt:40], @"rememberNum", [NSNumber numberWithInt:40], @@ -56,15 +52,17 @@ return self; } -- (void)awakeFromNib +- (void)awakeFromNibDisplaying:(int) displayNum withDisplayLength:(int) displayLength withSaveSelector:(SEL) selector forTarget:(NSObject*) target { // Initialize the FlycutStore clippingStore = [[FlycutStore alloc] initRemembering:[[NSUserDefaults standardUserDefaults] integerForKey:@"rememberNum"] - displaying:[[NSUserDefaults standardUserDefaults] integerForKey:@"displayNum"] - withDisplayLength:[[NSUserDefaults standardUserDefaults] integerForKey:@"displayLen"]]; - favoritesStore = [[FlycutStore alloc] initRemembering:[[NSUserDefaults standardUserDefaults] integerForKey:@"favoritesRememberNum"] - displaying:[[NSUserDefaults standardUserDefaults] integerForKey:@"displayNum"] - withDisplayLength:[[NSUserDefaults standardUserDefaults] integerForKey:@"displayLen"]]; + displaying:displayNum + withDisplayLength:displayLength]; + favoritesStore = [[FlycutStore alloc] initRemembering:[[NSUserDefaults standardUserDefaults] integerForKey:@"favoritesRememberNum"] + displaying:displayNum + withDisplayLength:displayLength]; + saveSelector = selector; + saveTarget = target; stashedStore = NULL; // If our preferences indicate that we are saving, load the dictionary from the saved plist @@ -547,10 +545,8 @@ forKey:@"rememberNum"]; [saveDict setObject:[NSNumber numberWithInt:[[NSUserDefaults standardUserDefaults] integerForKey:@"favoritesRememberNum"]] forKey:@"favoritesRememberNum"]; - [saveDict setObject:[NSNumber numberWithInt:[[NSUserDefaults standardUserDefaults] integerForKey:@"displayLen"]] - forKey:@"displayLen"]; - [saveDict setObject:[NSNumber numberWithInt:[[NSUserDefaults standardUserDefaults] integerForKey:@"displayNum"]] - forKey:@"displayNum"]; + + [saveTarget performSelector:saveSelector withObject:saveDict]; [self saveStore:clippingStore toKey:@"jcList" onDict:saveDict]; [self saveStore:favoritesStore toKey:@"favoritesList" onDict:saveDict];