2011-11-19 69 views

回答

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方法查找它们的屏幕坐标。

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

决定何时做,这是作为一个练习的学生急忙:)

+0

我开始和结束为零在ios 7,但它的工作正常在ios 8.你可以帮我吗? –

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; 
    } 
+0

漂亮的代码,但遗憾的是它并没有解决我的真正的问题。据我所知,在UITextView&c中无法突出显示文本,这就是为什么我想使用内置拼写错误的单词荧光笔 - 我只想禁用内置的拼写检查建议,转而使用我自己的系统。 –