Здесь я достиг так далеко. У меня есть функция, которая получает строку и показывает мне некоторые предложения для моей пользовательской клавиатуры.
-(void)suggestionsForCustomKeyboard:(NSString *)word{
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);
}
Последние две строки — оператор печати для двух типов. Один предназначен для угадывания слов в случае ошибки, а другой — для словарных слов. Массив arrPredictiveText содержит слова, расположенные последовательно, как в словаре.
Пожалуйста, дайте какую-нибудь идею или способ решения предложения и механизма прогнозирования следующего слова для пользовательской клавиатуры ios, такой как другие приложения. Любая помощь или предложение будут оценены.