即时更新UIMenuController

时间:2011-01-04 21:11:24

标签: iphone uimenucontroller

我的应用程序可以弹出菜单。按下“全选”按钮时,我想启用“删除”按钮。但是我无法让这个工作。

这是一个说明问题的sample project。运行它,然后点击“菜单”按钮,按“全选”。 “删除”按钮应立即显示,但仅在隐藏菜单然后再次显示时才会显示。我该如何解决这个问题?

2 个答案:

答案 0 :(得分:2)

以下是诀窍:

- (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时,菜单不会动态更新。

答案 1 :(得分:0)

这已在iOS 5中解决(rdar:// problem / 8819322)。