0
在这里,我到目前为止。我有一个函数接收一个字符串并向我显示一些关于我的自定义键盘的建议。iOS自定义键盘建议与UITextChecker
- (空)suggestionsForCustomKeyboard:(的NSString *)字{
NSArray *arrPredectiveText;
UITextChecker *checker = [[UITextChecker alloc] init];
NSLocale *currentLocale = [NSLocale currentLocale];
NSString *currentLanguage = [currentLocale objectForKey:NSLocaleLanguageCode];
NSRange searchRange = NSMakeRange(0, word.length);
arrPredectiveText = [checker completionsForPartialWordRange:searchRange inString:word language:currentLanguage];
NSArray *guesses = [NSArray array];
if ([currentString length] >= 1) {
UITextChecker *textChecker = [[UITextChecker alloc] init];
NSRange misspelledRange = [textChecker
rangeOfMisspelledWordInString:currentString
range:NSMakeRange(0, [currentString length])
startingAt:0
wrap:NO
language:@"en_US"];
if (misspelledRange.location != NSNotFound) {
guesses = [textChecker guessesForWordRange:misspelledRange
inString:currentString
language:@"en_US"];
NSLog(@"First guess: %@", [guesses firstObject]);
} else {
NSLog(@"Textchecker Not found");
autocorrectedText = @"";
}
if (arrPredectiveText.count >= 2){
suggestionOne = [arrPredectiveText objectAtIndex:0];
suggestionTwo = [arrPredectiveText objectAtIndex:1];
}
else if (arrPredectiveText.count == 1 && guesses.count >= 1) {
suggestionOne = [arrPredectiveText firstObject];
suggestionTwo = [guesses firstObject];
}else if (arrPredectiveText.count == 0 && guesses.count > 0){
suggestionOne = [guesses firstObject];
if (guesses.count > 1) {
suggestionTwo = [guesses objectAtIndex:1];
}
}
NSLog(@"Textchecker all guess: %@", guesses);
NSLog(@"Prediction: %@",arrPredectiveText);
}
最后两行是两种类型的打印语句。一个是拼写错误发生时的猜测词,另一个是词典词。 arrPredectiveText数组按字典顺序包含单词。
请给出一些想法或方法来解决像其他应用程序的ios自定义键盘的建议和下一个词预测机制。任何帮助或建议将不胜感激。