Removes NSUserDefault for selection key if a user chooses to use the default setting.

This commit is contained in:
zonble 2021-11-12 00:36:41 +08:00
parent da8e6c6fa5
commit 21252e6c55
1 changed files with 11 additions and 8 deletions

View File

@ -36,6 +36,7 @@
static NSString *const kBasisKeyboardLayoutPreferenceKey = @"BasisKeyboardLayout"; // alphanumeric ("ASCII") input basis static NSString *const kBasisKeyboardLayoutPreferenceKey = @"BasisKeyboardLayout"; // alphanumeric ("ASCII") input basis
static NSString *const kCandidateKeys = @"CandidateKeys"; static NSString *const kCandidateKeys = @"CandidateKeys";
static NSString *const kDefaultKeys = @"123456789";
@implementation PreferencesWindowController @implementation PreferencesWindowController
@synthesize fontSizePopUpButton = _fontSizePopUpButton; @synthesize fontSizePopUpButton = _fontSizePopUpButton;
@ -95,14 +96,14 @@ static NSString *const kCandidateKeys = @"CandidateKeys";
self.selectionKeyComboBox.usesDataSource = NO; self.selectionKeyComboBox.usesDataSource = NO;
[self.selectionKeyComboBox removeAllItems]; [self.selectionKeyComboBox removeAllItems];
[self.selectionKeyComboBox addItemsWithObjectValues:@[ [self.selectionKeyComboBox addItemsWithObjectValues:@[
@"123456789", kDefaultKeys,
@"asdfghjkl", @"asdfghjkl",
@"asdfzxcvb" @"asdfzxcvb"
]]; ]];
NSString *ckeys = [[NSUserDefaults standardUserDefaults] stringForKey:kCandidateKeys]; NSString *ckeys = [[NSUserDefaults standardUserDefaults] stringForKey:kCandidateKeys];
if (!ckeys || [ckeys stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]].length == 0) { if (!ckeys || [ckeys stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]].length == 0) {
ckeys = @"123456789"; ckeys = kDefaultKeys;
} }
[self.selectionKeyComboBox setStringValue:ckeys]; [self.selectionKeyComboBox setStringValue:ckeys];
@ -120,17 +121,19 @@ static NSString *const kCandidateKeys = @"CandidateKeys";
{ {
NSString *keys = [[sender stringValue] stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]; NSString *keys = [[sender stringValue] stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
if (keys.length != 9 || if (keys.length != 9 ||
![keys canBeConvertedToEncoding:NSASCIIStringEncoding] ![keys canBeConvertedToEncoding:NSASCIIStringEncoding]) {
) { [self.selectionKeyComboBox setStringValue:kDefaultKeys];
NSString *defaultKeys = @"123456789"; [[NSUserDefaults standardUserDefaults] removeObjectForKey:kCandidateKeys];
[self.selectionKeyComboBox setStringValue:defaultKeys];
[[NSUserDefaults standardUserDefaults] setObject:defaultKeys forKey:kCandidateKeys];
NSBeep(); NSBeep();
return; return;
} }
[self.selectionKeyComboBox setStringValue:keys]; [self.selectionKeyComboBox setStringValue:keys];
[[NSUserDefaults standardUserDefaults] setObject:keys forKey:kCandidateKeys]; if ([keys isEqualToString:kDefaultKeys]) {
[[NSUserDefaults standardUserDefaults] removeObjectForKey:kCandidateKeys];
} else {
[[NSUserDefaults standardUserDefaults] setObject:keys forKey:kCandidateKeys];
}
} }
@end @end