2
This commit is contained in:
@@ -369,13 +369,7 @@ static NSString *KBFormatMB(uint64_t bytes) {
|
||||
if (context.length == 0) {
|
||||
return @"";
|
||||
}
|
||||
static NSCharacterSet *letters = nil;
|
||||
static dispatch_once_t onceToken;
|
||||
dispatch_once(&onceToken, ^{
|
||||
letters = [NSCharacterSet
|
||||
characterSetWithCharactersInString:
|
||||
@"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"];
|
||||
});
|
||||
NSCharacterSet *letters = [self kb_allowedSuggestionCharacterSet];
|
||||
|
||||
NSInteger idx = (NSInteger)context.length - 1;
|
||||
while (idx >= 0) {
|
||||
@@ -396,13 +390,7 @@ static NSString *KBFormatMB(uint64_t bytes) {
|
||||
if (text.length == 0) {
|
||||
return NO;
|
||||
}
|
||||
static NSCharacterSet *letters = nil;
|
||||
static dispatch_once_t onceToken;
|
||||
dispatch_once(&onceToken, ^{
|
||||
letters = [NSCharacterSet
|
||||
characterSetWithCharactersInString:
|
||||
@"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"];
|
||||
});
|
||||
NSCharacterSet *letters = [self kb_allowedSuggestionCharacterSet];
|
||||
for (NSUInteger i = 0; i < text.length; i++) {
|
||||
if (![letters characterIsMember:[text characterAtIndex:i]]) {
|
||||
return NO;
|
||||
@@ -411,6 +399,61 @@ static NSString *KBFormatMB(uint64_t bytes) {
|
||||
return YES;
|
||||
}
|
||||
|
||||
- (NSCharacterSet *)kb_allowedSuggestionCharacterSet {
|
||||
switch (self.suggestionEngine.engineType) {
|
||||
case KBSuggestionEngineTypeSpanish:
|
||||
return [self kb_spanishSuggestionCharacterSet];
|
||||
case KBSuggestionEngineTypeBopomofo:
|
||||
return [self kb_bopomofoSuggestionCharacterSet];
|
||||
case KBSuggestionEngineTypeLatin:
|
||||
case KBSuggestionEngineTypePortuguese:
|
||||
case KBSuggestionEngineTypeIndonesian:
|
||||
case KBSuggestionEngineTypePinyinSimplified:
|
||||
case KBSuggestionEngineTypePinyinTraditional:
|
||||
default:
|
||||
return [self kb_latinSuggestionCharacterSet];
|
||||
}
|
||||
}
|
||||
|
||||
- (NSCharacterSet *)kb_latinSuggestionCharacterSet {
|
||||
static NSCharacterSet *set = nil;
|
||||
static dispatch_once_t onceToken;
|
||||
dispatch_once(&onceToken, ^{
|
||||
set = [NSCharacterSet characterSetWithCharactersInString:
|
||||
@"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
|
||||
"áÁàÀâÂãÃäÄåÅæÆçÇ"
|
||||
"éÉèÈêÊëË"
|
||||
"íÍìÌîÎïÏ"
|
||||
"ñÑ"
|
||||
"óÓòÒôÔõÕöÖøØ"
|
||||
"úÚùÙûÛüÜ"
|
||||
"ýÝÿ"];
|
||||
});
|
||||
return set;
|
||||
}
|
||||
|
||||
- (NSCharacterSet *)kb_spanishSuggestionCharacterSet {
|
||||
static NSCharacterSet *set = nil;
|
||||
static dispatch_once_t onceToken;
|
||||
dispatch_once(&onceToken, ^{
|
||||
set = [NSCharacterSet characterSetWithCharactersInString:
|
||||
@"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
|
||||
"áÁéÉíÍóÓúÚñÑüÜ"];
|
||||
});
|
||||
return set;
|
||||
}
|
||||
|
||||
- (NSCharacterSet *)kb_bopomofoSuggestionCharacterSet {
|
||||
static NSCharacterSet *set = nil;
|
||||
static dispatch_once_t onceToken;
|
||||
dispatch_once(&onceToken, ^{
|
||||
set = [NSCharacterSet characterSetWithCharactersInString:
|
||||
@"ㄅㄆㄇㄈㄉㄊㄋㄌㄍㄎㄏㄐㄑㄒㄓㄔㄕㄖㄗㄘㄙㄧㄨㄩㄚㄛㄜㄝㄞㄟㄠㄡㄢㄣㄤㄥㄦ"
|
||||
"˙ˊˇˋ"];
|
||||
});
|
||||
return set;
|
||||
}
|
||||
|
||||
- (void)kb_updateSuggestionsForCurrentWord {
|
||||
NSString *prefix = self.currentWord ?: @"";
|
||||
if (prefix.length == 0) {
|
||||
|
||||
Reference in New Issue
Block a user