• iOS webview加载html自定义选项框选词


    项目要求:webview加载html网址,内容为英文文本,需要获取文本上的单词

    这个是最终效果图:

    思路是先实现自定义的选项框(不带系统选项)再获取到滑选的单词;

    实现的步骤:

    首先是替换掉系统长按出现的复制选项框,因为长按会触发系统自带的选择复制选项(另外iOS系统在第一次长按选词时不会弹出选项框,这个注意一下就好),这里是只显示自己需要的选项(项目中是"标记"和"字典");

    在视图控制器中添加UIMenuController自定义项

    UIMenuItem *flag1 = [[UIMenuItem alloc] initWithTitle:@"标记" action:@selector(biaoji:)];
    UIMenuItem *flag2 = [[UIMenuItem alloc] initWithTitle:@"字典" action:@selector(zidian:)];
    UIMenuController *menu = [UIMenuController sharedMenuController];
    [menu setMenuItems:[NSArray arrayWithObjects:flag1,flag2, nil]];

    创建一个继承自webview的CustomView,作为控制器中webview的父类,初始化CustomView,添加自定义选项方法:

    -(BOOL)canPerformAction:(SEL)action withSender:(id)sender{
        
        if(action == @selector(biaoji:) || action == @selector(zidian:)){
            
            return YES;
            
        }
    //   return [super canPerformAction:action withSender:sender]//加上这句会返回系统的选项
        return NO;
    }

    :如果返回不是NO,而是return [super canPerformAction:action withSender:sender]这个的话,选项框会带上系统的选项而把"标记"和"字典"排在后面

    再在CustomView中实现UIMenuController的两个选项方法:

    -(void)biaoji:(UILongPressGestureRecognizer *)gesture
    {
        NSLog(@"222menuView方法-标记重难点");
        
        NSString* selection = [self stringByEvaluatingJavaScriptFromString:@"window.getSelection().toString()"];
        NSLog(@"打印选中的词=%@",selection);
    }
    -(void)zidian:(UILongPressGestureRecognizer *)gesture
    {
        NSLog(@"222menuView方法-查字典");
    }

    [self stringByEvaluatingJavaScriptFromString:@"window.getSelection().toString()"]这个是在点击自定义选项后获取到已滑动选的词,这样就可以了,比较简单。

    参考网址:

    http://jingyan.baidu.com/article/ac6a9a5e7d3e282b653eac1b.html(百度知道)
    www.itstrike.cn/Question/b0d4ca24-d5bd-4d12-a3be-cdeae9eba5b9.html(程序网)
     
  • 相关阅读:
    【项目 · Wonderland】UML设计
    【项目 · Wonderland】预则立 && 他山之石
    【项目 · Wonderland】需求规格说明书 · 终版
    【项目 · 学生部门互选系统】项目展示
    【项目 · Wonderland】立项报告
    React 封装Form表单组件
    前端算法题解析 《四》
    前端算法题解析 《三》
    前端算法题解析 《二》
    前端算法题解析 《一》
  • 原文地址:https://www.cnblogs.com/wusang/p/5757411.html
Copyright © 2020-2023  润新知