【问题标题】:objective c remove copy button from menu bar目标c从菜单栏中删除复制按钮
【发布时间】:2012-12-10 22:18:53
【问题描述】:

我正在编写一个使用 webkit 读取 epub 的应用程序。当我通过长按选择文本时,菜单栏打开,应该只有 Facebook 和 Twitter 按钮。所以这是我的代码我是怎么做到的:

- (BOOL)canPerformAction:(SEL)action withSender:(id)sender {
if (action == @selector(facebookItemClicked:) || action == @selector(twitterItemClicked:)) {
return YES;
}else if (action == @selector(copy:)){
NSLog(@"copy");
} return NO;}

这是我如何初始化菜单项

UIMenuItem *facebookMenuItem = [[UIMenuItem alloc] initWithTitle:@"Facebook" action:@selector(facebookItemClicked:)]; UIMenuItem *twitterMenuItem = [[UIMenuItem alloc] initWithTitle:@"Twitter" action:@selector(twitterItemClicked:)];

但问题是复制选择器从未将其显示为操作,因此我无法捕捉到它,并且每次显示菜单栏时,Facebook 和 Twitter 旁边还有一个复制按钮。

如果有人可以帮助我,那就太好了。

提前致谢。

【问题讨论】:

  • 您可能需要修改措辞。部分无法理解。
  • 恐怕我没有真正得到你的评论。
  • “从不作为动作出现,所以我无法捕捉到它”很难理解。
  • 我的意思是当 canPerformAction “运行”它可以执行的所有操作时,例如复制、粘贴、剪切、定义、Facebook、twitter 等,在这一行操作中复制操作不会出现,所以我可以删除它,但它应该在那里。我无法理解复制操作不在该列表中的原因是什么?
  • 问题应标记为 iOS。 UIResponder 文档声明“请注意,如果您的类对命令返回 NO,则响应者链上的另一个响应者可能仍会返回 YES,从而启用该命令。”所以无论如何都可能无法消除copy:。或者,您的UIApplication 或窗口级别的某些东西可能正在返回YES,您需要覆盖它才能停止它。

标签: ios cocoa-touch copy selector menuitem


【解决方案1】:

问题已解决。

默认 UIWebView 覆盖了我的 menuBar 操作。所以我创建了一个继承自 UIWebView 的类CustomWebView 添加了

+ (void)initialize{
UIMenuItem *itemA = [[UIMenuItem alloc] initWithTitle:@"A" action:@selector(a:)];
UIMenuItem *itemB = [[UIMenuItem alloc] initWithTitle:@"B" action:@selector(b:)];
[[UIMenuController sharedMenuController] setMenuItems:[NSArray arrayWithObjects:itemA, itemB, nil]];
//    [itemA release];
//    [itemB release];
 }

- (BOOL)canPerformAction:(SEL)action withSender:(id)sender
{
BOOL can = [super canPerformAction:action withSender:sender];
if (action == @selector(a:) || action == @selector(b:))
    {
        can = YES;
    }
if (action == @selector(copy:))
    {
        can = NO;
    }
NSLog(@"%@ perform action %@ with sender %@.", can ? @"can" : @"cannot", NSStringFromSelector(action), sender);
return can;
}

它覆盖了webview 中的菜单栏操作,然后我在其他使用 webvew 的类中使用了这个CustomWebView

【讨论】:

    猜你喜欢
    • 2021-11-18
    • 2022-12-25
    • 1970-01-01
    • 1970-01-01
    • 2013-11-07
    • 2010-09-05
    • 1970-01-01
    • 2012-11-26
    • 1970-01-01
    相关资源
    最近更新 更多