【发布时间】: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