我的应用程序能够弹出一个菜单。当按下“全选”按钮时,我想启用“删除”按钮。但是我无法让这个工作。
这是说明该问题的示例项目。运行它,然后点击菜单按钮,按全选。删除按钮应立即出现,但仅在您隐藏菜单然后再次显示时才会出现。我怎样才能解决这个问题?
我的应用程序能够弹出一个菜单。当按下“全选”按钮时,我想启用“删除”按钮。但是我无法让这个工作。
这是说明该问题的示例项目。运行它,然后点击菜单按钮,按全选。删除按钮应立即出现,但仅在您隐藏菜单然后再次显示时才会出现。我怎样才能解决这个问题?
以下是诀窍:
- (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
,菜单不会即时更新。
这在 iOS 5 (rdar://problem/8819322) 中得到解决。