首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UIMenuController自定义项

UIMenuController自定义项
EN

Stack Overflow用户
提问于 2010-08-21 21:24:47
回答 1查看 12K关注 0票数 14

我创建了一个UIMenuController,并将其设置为一个自定义菜单项,如下所示:

代码语言:javascript
复制
UIMenuController *menuController = [UIMenuController sharedMenuController];
UIMenuItem *item1 = [[UIMenuItem alloc] initWithTitle:@"Do This" action:@selector(item1)];
[menuController setMenuItems:[NSArray arrayWithObject:item1]];

但我希望该对象是唯一出现的对象,所以我添加了以下代码:

代码语言:javascript
复制
- (BOOL)canPerformAction: (SEL)action withSender: (id)sender {
    BOOL answer = NO;

    if (action == @selector(item1))
        answer = YES;

    return answer;
}

问题是它仍然显示other##标题##项目,如“选择”,“全选”和“粘贴”。这可能与UITextView中显示的内容有关。但是我如何停止显示所有其他项目呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-08-22 01:37:08

我认为这是为数不多的你想要继承UITextView子类的例子之一。我刚刚用下面的代码尝试了一下,唯一显示的菜单项是我的Do Something项。

从我的TestViewController.m

代码语言:javascript
复制
@implementation TestViewController

- (void) doSomething: (id) sender
{
    NSLog(@"Doing something");
}

- (void) viewDidLoad
{
    UIMenuController *menuController = [UIMenuController sharedMenuController];
    UIMenuItem *item = [[[UIMenuItem alloc] initWithTitle: @"Do Something"
        action: @selector(doSomething:)] autorelease];
    [menuController setMenuItems: [NSArray arrayWithObject: item]];
}

@end

我的MyTextView.h的代码

代码语言:javascript
复制
//  MyTextView.h

#import <UIKit/UIKit.h>

@interface MyTextView :UITextView {

}

@end

MyTextView.m的代码

代码语言:javascript
复制
//  MyTextView.m

#import "MyTextView.h"

@implementation MyTextView

- (BOOL) canPerformAction:(SEL)action withSender:(id)sender
{
    return NO;
}

@end
票数 16
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3537795

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档