我的应用程序使用自己的窗口实现自定义拼写检查程序,并使用与iOS中内置拼写检查程序不同的工作流程。因此我在主文本输入视图中关闭了校正。这会禁用内置建议,但也会突出显示拼写错误的单词。
有没有办法保持突出显示,但禁用建议?
答案 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方法查找屏幕上的坐标。
突出显示您想要的任何方式。
决定何时这样做是留给热心学生的练习:)