自定义编辑菜单中的UIMenuItems的顺序 [英] Order of UIMenuItems in custom edit menu

查看:119
本文介绍了自定义编辑菜单中的UIMenuItems的顺序的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想将我自己的命令添加到选择菜单,但还要保留标准的复制",剪切"等命令.我用这个:

I want to add my own commands to the selection menu, but also keep the standard "copy", "cut", etc. commands. I use this:

    UIMenuItem *myItem = [[UIMenuItem alloc] initWithTitle:@"My Command" action:@selector(myCommand:)];
    [[UIMenuController sharedMenuController] setMenuItems:[NSArray arrayWithObjects: myItem, nil]];

但这会将我的命令添加到编辑菜单中列表的末尾.我希望我的命令首先出现在其中.我怎么能做到这一点?

But this adds my command to the very end of the list in the edit menu. I want my command to appear first in it. How could I achieve this?

推荐答案

由我自己解决.这是我的initWithCoder:方法中的内容:

Solved it by myself. Here is what in my initWithCoder: method:

    UIMenuItem *myCommandItem = [[UIMenuItem alloc] initWithTitle:@"My Command" action:@selector(myCommandPressed:)];

    UIMenuItem *cutItem = [[UIMenuItem alloc] initWithTitle:@"Cut" action:@selector(myCut:)];
    UIMenuItem *copyItem = [[UIMenuItem alloc] initWithTitle:@"Copy" action:@selector(myCopy:)];
    UIMenuItem *pasteItem = [[UIMenuItem alloc] initWithTitle:@"Paste" action:@selector(myPaste:)];
    UIMenuItem *selectItem = [[UIMenuItem alloc] initWithTitle:@"Select" action:@selector(mySelect:)];
    UIMenuItem *selectAllItem = [[UIMenuItem alloc] initWithTitle:@"Select all" action:@selector(mySelectAll:)];
    UIMenuItem *deleteItem = [[UIMenuItem alloc] initWithTitle:@"Delete" action:@selector(myDelete:)];

    [[UIMenuController sharedMenuController] setMenuItems:[NSArray arrayWithObjects: myCommandItem,
                                                           cutItem, copyItem, pasteItem, selectItem, selectAllItem, deleteItem, nil]];

现在,这个:

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

    if (action == @selector(myCommandPressed:)) {
        return YES;
    }

    if (action == @selector(myCut:)) {
        return [super canPerformAction:@selector(cut:) withSender:sender];
    }

    if (action == @selector(myCopy:)) {
        return [super canPerformAction:@selector(copy:) withSender:sender];
    }

    if (action == @selector(myPaste:)) {
        return [super canPerformAction:@selector(paste:) withSender:sender];
    }

    if (action == @selector(mySelect:)) {
        return [super canPerformAction:@selector(select:) withSender:sender];
    }

    if (action == @selector(mySelectAll:)) {
        return [super canPerformAction:@selector(selectAll:) withSender:sender];
    }

    if (action == @selector(myDelete:)) {
        return [super canPerformAction:@selector(delete:) withSender:sender];
    }

    return NO;
}

最后:

- (void) myCommandPressed: (id) sender {
    NSLog(@"My Command pressed");
}


- (void) myCut: (id) sender {
    [self cut:sender];
}

- (void) myCopy: (id) sender {
    [self copy:sender];
}

- (void) myPaste: (id) sender {
    [self paste:sender];
}

- (void) mySelect: (id) sender {
    [self select:sender];
}

- (void) mySelectAll: (id) sender {
    [self selectAll:sender];
}

- (void) myDelete: (id) sender {
    [self delete:sender];
}

这篇关于自定义编辑菜单中的UIMenuItems的顺序的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆