1

私の顧客から、基本的な UIMenuController の奇妙な動作が報告されました。アプリがアプリ ストアまたはアドホックからインストールされると、UIMenuController が表示されません。シミュレーターで、または xcode から直接ロードした場合は完全に正常に動作しますが、まったく同じアプリを配布してアプリ ストアまたは 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];
 }
4

1 に答える 1

3

テストと配布されたバイナリの違いは、おそらくアプリを「デバッグ」でテストし、「リリース」でリリースすることです。

NSAssert は "Release" ビルドから削除される可能性があり、それによって動作が変わる可能性があります。

于 2013-02-13T09:23:08.507 に答える