iOS:突出显示拼写错误但禁用建议?

时间:2011-11-19 08:33:00

标签: iphone ipad

我的应用程序使用自己的窗口实现自定义拼写检查程序,并使用与iOS中内置拼写检查程序不同的工作流程。因此我在主文本输入视图中关闭了校正。这会禁用内置建议,但也会突出显示拼写错误的单词。

有没有办法保持突出显示,但禁用建议?

2 个答案:

答案 0 :(得分:0)

您可以使用以下代码检查天气是否拼写正确拼写错误,如果错误则突出显示该单词

首次导入

#import <UIKit/UITextChecker.h>

在你的档案中

-(BOOL)isDictionaryWord:(NSString*)word {
    UITextChecker *checker = [[UITextChecker alloc] init];
    NSLocale *currentLocale = [NSLocale currentLocale];
    NSString *currentLanguage = [currentLocale objectForKey:NSLocaleLanguageCode];
    NSRange searchRange = NSMakeRange(0, [word length]);
    NSRange misspelledRange = [checker rangeOfMisspelledWordInString:word range: searchRange
startingAt:0 wrap:NO language: currentLanguage ];
    return misspelledRange.location == NSNotFound;
    }

答案 1 :(得分:0)

你必须自己动手。这是一个粗略的(iOS 5及更高版本):

在文本视图顶部删除透明背景的视图。

找到可见范围的文字,如下所示:

- (NSRange)visibleRangeOfTextView:(UITextView *)textView {
    CGRect bounds = textView.bounds;
    UITextPosition *start = [textView characterRangeAtPoint:bounds.origin].start;
    UITextPosition *end = [textView characterRangeAtPoint:CGPointMake(CGRectGetMaxX(bounds), CGRectGetMaxY(bounds))].end;
    return NSMakeRange([textView offsetFromPosition:textView.beginningOfDocument toPosition:start],
                   [textView offsetFromPosition:start toPosition:end]);
}

搜索该范围内拼写错误的单词。

使用UITextView firstRectForRange方法查找屏幕上的坐标。

突出显示您想要的任何方式。

决定何时这样做是留给热心学生的练习:)