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]

  • 相关阅读:
    BZOJ3752 : Hack
    XIV Open Cup named after E.V. Pankratiev. GP of SPb
    XIII Open Cup named after E.V. Pankratiev. GP of Ukraine
    BZOJ2087 : [Poi2010]Sheep
    BZOJ2080 : [Poi2010]Railway
    BZOJ2082 : [Poi2010]Divine divisor
    Moscow Pre-Finals Workshop 2016. National Taiwan U Selection
    XIII Open Cup named after E.V. Pankratiev. GP of Asia and South Caucasus
    XIII Open Cup named after E.V. Pankratiev. GP of Azov Sea
    XIII Open Cup named after E.V. Pankratiev. GP of SPb
  • 原文地址:https://www.cnblogs.com/xgbzsc/p/2850707.html
Copyright © 2011-2022 走看看