我的客户报告了一个基本UIMenuController的奇怪行为:当从app store或ad hoc安装应用程序时,UIMenuController将不会显示! 它在模拟器上工作得很好,或者直接从xcode加载但如果我尝试分发完全相同的应用程序并通过app store或ipa文件安装它,菜单就不会显示出来。
这可能来自哪里?
我觉得它没有用,但这是我用来显示菜单控制器的代码:
UIMenuController *menuController;
NSAssert([self becomeFirstResponder], @"Sorry, UIMenuController will not work with %@ since it cannot become first responder", self);
UIMenuItem *duplicateItem = [[UIMenuItem alloc] initWithTitle:@"Duplicate" action:@selector(duplicate:)];
UIMenuItem *deleteItem = [[UIMenuItem alloc] initWithTitle:@"Delete" action:@selector(deleteButton:)];
UIMenuItem *copyItem = [[UIMenuItem alloc] initWithTitle:@"Copy" action:@selector(copySelected:)];
[menuController setMenuItems:[NSArray arrayWithObjects:duplicateItem, deleteItem, copyItem, nil]];
[menuController setArrowDirection:UIMenuControllerArrowDown];
[menuController setTargetRect:sender.frame inView:contentView];
[menuController setMenuVisible:YES animated:YES];
和:
- (BOOL) canPerformAction:(SEL)selector withSender:(id) sender
{
return [super canPerformAction:selector withSender:sender];
}
答案 0 :(得分:3)
您的测试和分布式二进制文件之间的区别在于您可能在“调试”中测试您的应用程序,但在“发布”中发布。
NSAssert可能会从“Release”版本中删除,并且/可能/会改变行为。