Обновление UIMenuController на лету - PullRequest
1 голос
/ 05 января 2011

Мое приложение имеет возможность всплывающего меню. Когда нажата кнопка «Выбрать все», я хочу включить кнопку «Удалить». Однако я не смог заставить это работать.

Вот пример проекта , иллюстрирующий проблему. Запустите его, затем нажмите кнопку меню, нажмите «Выбрать все». Кнопка «Удалить» должна появиться сразу, но она появляется только тогда, когда вы скрываете меню и затем показываете его снова. Как я могу это исправить?

Ответы [ 2 ]

2 голосов
/ 05 января 2011

Следующее делает трюк:

- (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 меню не обновляется на лету.

0 голосов
/ 20 июня 2011

Это решено в iOS 5 (rdar: // problem / 8819322).

...