动态更新 UIMenuController

发布于 2024-10-10 05:20:00 字数 207 浏览 6 评论 0原文

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

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

My application has the ability to pop up a menu. When the "Select All" button is pressed, I want to enable the "Delete" button. However I haven't been able to get this working.

Here is a sample project illustrating the issue. Run it, then tap the Menu button, press Select All. The Delete button should appear immediately, but it only appears when you hide the menu and then show it again. How can I fix this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

素衣风尘叹 2024-10-17 05:20:00

下面的方法可以解决这个问题:

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

The following does the trick:

- (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];
        });
    });
}

I've noticed however that it does not work very reliable, for example when setting animated to NO, the menu is not updated on the fly.

只怪假的太真实 2024-10-17 05:20:00

iOS 5 中已解决此问题 (rdar://problem/8819322)。

This is resolved in iOS 5 (rdar://problem/8819322).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文