UImenucontroller在App Store上的行为与在开发上的行为不同

时间:2013-02-07 00:56:20

标签: ios ipad uimenucontroller

我的客户报告了一个基本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];
 }

1 个答案:

答案 0 :(得分:3)

您的测试和分布式二进制文件之间的区别在于您可能在“调试”中测试您的应用程序,但在“发布”中发布。

NSAssert可能会从“Release”版本中删除,并且/可能/会改变行为。