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

标签 swift ios8 custom-keyboard uilexicon

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

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/

相关文章:

ios - 比较两个相同的 Double 值返回 false Swift 3

java - 如何从 java 类更改自定义键盘按键的背景?

swift - 第一次启动应用程序 xcode 时出现黑屏

ios - 在平移/缩放上移动的 Mapbox 标注。

ios - 如何在 iOS 8 上的 Cordova/PhoneGap 应用程序中隐藏键盘表单附件栏?

objective-c - 在 iOS 的自定义相机中捕获图像而不在图库中保存图像

ios - 如何在 iOS 8 中获取第三方键盘大小?

ios - 如何最好地优化 NSLayoutConstraint?

ios - 自定义键盘 : get selected text

ios - 沿特定角度的方向移动 View