私のアプリケーションには、メニューをポップアップする機能があります。「すべて選択」ボタンを押したときに「削除」ボタンを有効にしたい。しかし、私はこれを機能させることができませんでした。
これは、問題を説明するサンプルプロジェクトです。それを実行し、[メニュー]ボタンをタップして、[すべて選択]を押します。[削除]ボタンはすぐに表示されますが、メニューを非表示にしてから再度表示した場合にのみ表示されます。どうすればこれを修正できますか?
私のアプリケーションには、メニューをポップアップする機能があります。「すべて選択」ボタンを押したときに「削除」ボタンを有効にしたい。しかし、私はこれを機能させることができませんでした。
これは、問題を説明するサンプルプロジェクトです。それを実行し、[メニュー]ボタンをタップして、[すべて選択]を押します。[削除]ボタンはすぐに表示されますが、メニューを非表示にしてから再度表示した場合にのみ表示されます。どうすればこれを修正できますか?
以下はトリックを行います:
- (void)didHide:(NSNotification *)notif {
UIMenuController *mc = [UIMenuController sharedMenuController];
dispatch_async(dispatch_get_global_queue(0,0), ^{
dispatch_async(dispatch_get_main_queue(), ^{
[mc update];
[mc setMenuVisible:YES animated:YES];
});
});
}
ただし、これはあまり信頼性が高くないことに気づきました。たとえば、に設定animated
するNO
と、メニューがその場で更新されません。
これはiOS5(rdar:// problem / 8819322)で解決されています。