【发布时间】:2011-01-04 21:11:24
【问题描述】:
我的应用程序能够弹出一个菜单。当按下“全选”按钮时,我想启用“删除”按钮。但是我无法让这个工作。
这里有一个sample project 说明了这个问题。运行它,然后点击菜单按钮,按全选。删除按钮应立即出现,但仅在您隐藏菜单然后再次显示时才会出现。我该如何解决这个问题?
【问题讨论】:
我的应用程序能够弹出一个菜单。当按下“全选”按钮时,我想启用“删除”按钮。但是我无法让这个工作。
这里有一个sample project 说明了这个问题。运行它,然后点击菜单按钮,按全选。删除按钮应立即出现,但仅在您隐藏菜单然后再次显示时才会出现。我该如何解决这个问题?
【问题讨论】:
以下方法可以解决问题:
- (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)。
【讨论】: