gpt4 book ai didi

swift - 如何获取自定义键盘的建议列表?

转载 作者:行者123 更新时间:2023-11-30 10:16:30 24 4
gpt4 key购买 nike

我一直在试图找到一种方法来获取用户输入文本的建议列表(多种语言,不是英语,美国),我已经在这里发现了很多讨论问题,但没有人弄清楚整个解决方案,所以我尝试执行以下场景:

1- 用户输入一个或多个字母(例如“Ap”)

2- 获取建议单词列表(例如 Apple、Apply...)

我应该如何获取此列表,如自定义键盘应用程序(例如 Swift 键)

提前致谢。

最佳答案

试试这个。

+ (void)getSuggestionsFor:(NSString *)word WithCompletion:(void(^)(NSArray *))completion
{
NSString *prefix = [word substringToIndex:word.length - 1];
// Won't get suggestions for correct words, so we are scrambling the words
NSString *scrambledWord = [NSString stringWithFormat:@"%@%@",word, [self getRandomCharAsNSString]];
UITextChecker *checker = [[UITextChecker alloc] init];
NSRange checkRange = NSMakeRange(0, scrambledWord.length);
NSRange misspelledRange = [checker rangeOfMisspelledWordInString:scrambledWord range:checkRange startingAt:checkRange.location wrap:YES language:@"en_US"];

NSArray *arrGuessed = [checker guessesForWordRange:misspelledRange inString:scrambledWord language:@"en_US"];
// NSLog(@"Arr ===== %@",arrGuessed);
// Filter the result based on the word
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF BEGINSWITH[c] %@",word];
NSArray *arrayfiltered = [arrGuessed filteredArrayUsingPredicate:predicate];
if(arrayfiltered.count == 0)
{
// Filter the result based on the prefix
NSPredicate *newPredicate = [NSPredicate predicateWithFormat:@"SELF BEGINSWITH[c] %@",prefix];
arrayfiltered = [arrGuessed filteredArrayUsingPredicate:newPredicate];
}
completion(arrayfiltered);
}


+ (NSString *)getRandomCharAsNSString {
return [NSString stringWithFormat:@"%c", arc4random_uniform(26) + 'a'];
}

关于swift - 如何获取自定义键盘的建议列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29706578/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com