iOS UIWebView自定义菜单

原创 2012年03月30日 11:25:29

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

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

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

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


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


附加代码:

[code]

#import <Foundation/Foundation.h>


@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 alloc] initWithTitle:NSLocalizedString(@"share",nil) action:@selector(item0:)];

        UIMenuItem *menuItem1 = [[UIMenuItem alloc] initWithTitle: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 alloc] initWithTitle:NSLocalizedString(@"666",nil) action:@selector(item6:)];

        UIMenuItem *menuItem7 = [[UIMenuItem alloc] initWithTitle:NSLocalizedString(@"分享到微博",nil) action:@selector(item7:)];

        

        NSArray *array = [NSArray arrayWithObjects:menuItem0, menuItem1,/* menuItem2, menuItem3, menuItem4, menuItem5,*/ 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]


在UIWebView中自定义显示选中文字的编辑菜单项

在iOS系统中,所谓“编辑菜单(Editing Menu)”和“上下文菜单(Contextual Menu)”是有区别的,但在桌面操作系统中,我们常说的“右键菜单”就已经囊括了“编辑菜单”和“上下文菜...

IOS自定义请求uiwebview的loading框

  • 2015年10月19日 13:34
  • 2KB
  • 下载

自定义UIWebView菜单

Customize the contextual menu of UIWebView When you tap and hold your finger on a link in a UIWeb...
  • xdonx
  • xdonx
  • 2011年08月25日 14:43
  • 1084

UIWebView自定义菜单栏

我的博客原文地址主要代码CustomWebView.h@interface CustomWebView : UIWebView @end CustomWebView.m#import "CustomW...

(iPhone/iPad开发)在UIWebView中自定义菜单栏

先声明一下,下面用到的方法是本人已经过实际运行达到预期效果后的总结,诸位在参考时可少走一些弯路,放心尝试。 我们所要达到的预期效果是,用UIWebView加载网页,长按某单词后弹出我...

自定义Dialog仿ios弹出底部菜单

  • 2016年10月08日 18:02
  • 3.88MB
  • 下载

Android 自定义仿IOS上拉菜单实现

最近在做一个歪果仁给我外包的项目,主页需要做一个类似于IOS那种上拉菜单的功能,于是一时间试了各种方法,什么Spinner、Drawlayout,SlidingMenu等等等等,都搞不了,后面实在被逼...

IOS下自定义下拉菜单的实现

  • 2013年03月28日 10:29
  • 152KB
  • 下载

ios 自定义菜单显示内容(可拖拽排序collectionView

最近项目有个首页菜单定制的需求,类似于支付宝的首页模块定制, 如果有这种需求的小伙伴不妨看一下,希望能帮到你 , 当然, 有任何不妥的地方 欢迎指正 首先看一下效果展示吧(请忽略这个不忍直视的GIF...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:iOS UIWebView自定义菜单
举报原因:
原因补充:

(最多只允许输入30个字)