在UIWebView中添加/删除复制/粘贴弹出框中的项目

时间:2013-08-16 20:09:16

标签: ios objective-c uiwebview

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

当在webview中突出显示文本时,会出现一个popover复制/粘贴/等等。有没有办法用其他按钮自定义此popover或使用我自己的自定义视图?我想添加更改文字颜色,突出显示等选项。

1 个答案:

答案 0 :(得分: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:等方法一样简单。查看文档here。希望这会有所帮助。