zoukankan      html  css  js  c++  java
  • UIWebView 自定义菜单

    近期由于项目需要把UIWebView中选中的字分享到微薄,分享按钮以自定义菜单的形式显示。

    看似把“分享到新浪微博”和“分享到腾讯微博”加到菜单中这么简单的问题,在实现过程中却遇到不少麻烦。原因是如果把两个菜单项追加到菜单中,显示结果为copy|more,并不是我们所想要的copy|分享到新浪微博|分享到腾讯微博,或者分享到新浪微博|分享到腾讯微博。

    网上google到http://braincoder.me/2012/01/custom-edit-menu-on-selection-in-uiwebview/

    谈论到了菜单项追加的情况,但是如果追加一项可以,追加两项还会出现以上情况。

    经过多次试验,发现如果自定义菜单和系统默认菜单同时使用时候,就会有more出现的问题。那么如果全部用自定义的,而不用系统默认的呢?结果符合了我们的需求。

    附加代码:

    [code]

    #import 

    @interface MyWebview : UIWebView

    @end

    //

    //  MyWebview.m

    //  UICatalog

    //

    //  Created by fan tingna on 12-3-30.

    //  Copyright (c) 2012 apabi. All rights reserved.

    //

    #import "MyWebview.h"

    @implementation MyWebview

    - (IBAction)item0:(id)sender;

    {

    }

    - (IBAction)item1:(id)sender;

    {

    }

    - (IBAction)item2:(id)sender;

    {

    }

    - (IBAction)item3:(id)sender;

    {

    }

    - (IBAction)item4:(id)sender;

    {

    }

    - (IBAction)item5:(id)sender;

    {

    }

    - (IBAction)item6:(id)sender;

    {

    }

    - (IBAction)item7:(id)sender;

    {

    }

    - (id)initWithFrame:(CGRect)frame {

        

        self = [super initWithFrame:frame];

        if (self) {

            UIMenuController *menuController = [UIMenuController sharedMenuController];

            UIMenuItem *menuItem0 = [[UIMenuItem allocinitWithTitle:NSLocalizedString(@"share",nil)action:@selector(item0:)];

            UIMenuItem *menuItem1 = [[UIMenuItem allocinitWithTitle:NSLocalizedString(@"111",nil)action:@selector(item1:)];

    //        UIMenuItem *menuItem2 = [[UIMenuItem alloc] initWithTitle:NSLocalizedString(@"222",nil) action:@selector(item2:)];

    //        UIMenuItem *menuItem3 = [[UIMenuItem alloc] initWithTitle:NSLocalizedString(@"333",nil) action:@selector(item3:)];

    //        UIMenuItem *menuItem4 = [[UIMenuItem alloc] initWithTitle:NSLocalizedString(@"444",nil) action:@selector(item4:)];

    //        UIMenuItem *menuItem5 = [[UIMenuItem alloc] initWithTitle:NSLocalizedString(@"555",nil) action:@selector(item5:)];

            UIMenuItem *menuItem6 = [[UIMenuItem allocinitWithTitle:NSLocalizedString(@"666",nil)action:@selector(item6:)];

            UIMenuItem *menuItem7 = [[UIMenuItem allocinitWithTitle:NSLocalizedString(@"分享到微博",nilaction:@selector(item7:)];

            

            NSArray *array = [NSArray arrayWithObjects:menuItem0, menuItem1, menuItem6, menuItem7,nil];

            [menuController setMenuItems:array];

        }

        return self;

    }

    - (BOOL)canPerformAction:(SEL)action withSender:(id)sender {

        if (action == @selector(item0:)||

            action == @selector(item1:)||

            action == @selector(item2:)||

            action == @selector(item3:)||

            action == @selector(item4:)||

            action == @selector(item5:)||

            action == @selector(item6:)||

            action == @selector(item7:)

            )

        {

            return YES;

        }

    //    return [super canPerformAction:action withSender:sender];

        return  NO;

    }

    @end

     

     [/code]

  • 相关阅读:
    由@Convert注解引出的jackson对枚举的反序列化规则
    List.contains()与自动拆箱
    Utf-8+Bom编码导致的读取数据部分异常问题
    ResouceUtils.getFile()取不到Jar中资源文件源码小结
    Java自动装箱中的缓存原理
    Javaconfig形式配置Dubbo多注册中心
    logback多环境配置
    Spring @Scheduled @Async联合实现调度任务(2017.11.28更新)
    Nginx的Access日志记录的时机
    Mysql索引引起的死锁
  • 原文地址:https://www.cnblogs.com/xgbzsc/p/2850707.html
Copyright © 2011-2022 走看看