0

当我们在 UIWebView 中突出显示文本时,通常会出现复制、粘贴、定义等。我怎样才能拦截它,以便当我选择复制时我调用其他方法/做其他事情。这可能吗?

当文本在 web 视图中突出显示时,会出现弹出窗口复制/粘贴/等...。有没有办法用其他按钮自定义这个弹出框或者使用我自己的自定义视图?我想添加用于更改文本颜色、突出显示等的选项。

4

1 回答 1

3

将自定义按钮/操作添加到[UIMenuController sharedMenuController]

UIMenuItem * highlight = [[UIMenuItem alloc] initWithTitle:@"Highlight" action:@selector(didTapCreateHighlight:)];
[menuItems addObject:highlight];
[UIMenuController sharedMenuController].menuItems = menuItems;

您可以像这样选择哪些项目是活动的(出现在 中UIMenuController)(这将只显示突出显示按钮)(写在我的头上,可能包含一些错别字):

- (BOOL)canPerformAction:(SEL)action withSender:(id)sender
{
    NSLog(@"action: %@", NSStringFromSelector(action));

    if (action == @selector(didTapCreateHighlight:)) {
        return YES;
    } else {
        return NO;
    }
}

我不确定它是否可能或如何覆盖系统方法。它可能就像覆盖方法一样简单,例如copy:. 在此处查看文档。希望这可以帮助。

于 2013-08-16T20:26:46.300 回答