【发布时间】:2014-12-14 17:59:57
【问题描述】:
我正在使用UIMenuItem 和UIMenuController 为我的UITextView 添加高亮 功能,因此用户可以更改所选的背景颜色文字,如下图所示:
- 在
UITextView中设置文本,用户可以使用highlight 功能:
-
UITextView中带有新背景颜色的突出显示文本,由用户在点击 highlight 功能后选择:
在 iOS 7 中,以下代码工作完美地完成了这项任务:
- (void)viewDidLoad {
[super viewDidLoad];
UIMenuItem *highlightMenuItem = [[UIMenuItem alloc] initWithTitle:@"Highlight" action:@selector(highlight)];
[[UIMenuController sharedMenuController] setMenuItems:[NSArray arrayWithObject:highlightMenuItem]];
}
- (void)highlight {
NSRange selectedTextRange = self.textView.selectedRange;
[attributedString addAttribute:NSBackgroundColorAttributeName
value:[UIColor redColor]
range:selectedTextRange];
// iOS 7 fix, NOT working in iOS 8
self.textView.scrollEnabled = NO;
self.textView.attributedText = attributedString;
self.textView.scrollEnabled = YES;
}
但在 iOS 8 中,文本选择是跳跃的。当我使用 UIMenuItem 和 UIMenuController 中的 highlight 功能时,它还会跳转到另一个 UITextView 偏移量。
如何在 iOS 8 中解决这个问题?
【问题讨论】:
标签: ios iphone ios7 ios8 uitextview