关闭

iOS UIWebView自定义菜单

标签: iosaction新浪微博腾讯interfacegoogle
3338人阅读 评论(2) 收藏 举报

近期由于项目需要把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]


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:8966次
    • 积分:119
    • 等级:
    • 排名:千里之外
    • 原创:3篇
    • 转载:3篇
    • 译文:0篇
    • 评论:2条
    文章分类
    最新评论