即时更新 UIMenuController
Posted
技术标签:
【中文标题】即时更新 UIMenuController【英文标题】:Updating UIMenuController on the fly 【发布时间】:2011-01-04 21:11:24 【问题描述】:我的应用程序能够弹出一个菜单。当按下“全选”按钮时,我想启用“删除”按钮。但是我无法让这个工作。
这里有一个sample project 说明了这个问题。运行它,然后点击菜单按钮,按全选。删除按钮应立即出现,但仅在您隐藏菜单然后再次显示时才会出现。我该如何解决这个问题?
【问题讨论】:
【参考方案1】:以下方法可以解决问题:
- (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
时,菜单不会即时更新。
【讨论】:
我试过这样做。我无法更新菜单。请帮忙 我对 UIMenuController 有类似的问题。再次点击其中一个菜单选项后,我想要一些菜单项。所以我使用上面的代码。它在 ios6 中工作正常,但在 iOS7 中无论我设置的 targetFrame到 UIMenuController 没有反映,它以不正确的箭头方向呈现在视图上的某个位置。【参考方案2】:这已在 iOS 5 中得到解决 (rdar://problem/8819322)。
【讨论】:
以上是关于即时更新 UIMenuController的主要内容,如果未能解决你的问题,请参考以下文章