iOS 14 настраивает меню UIBarButttonItem перед его открытием
Поскольку iOS14 предлагает простой способ настройки меню UIBarButtonItem
, интересно, не скучаю ли я, что нет простого способа настроить его элементы, поскольку они могут зависеть от текущего контекста.
Я вижу, что есть UIDeferredMenuElement
, но, похоже, это не лучший вариант использования?
Также я вижу, что есть primaryAction
, но, похоже, нет тривиального способа вызвать меню оттуда.
И третий вариант, кажется, перетасовывает меню при каждом изменении, которое может повлиять на него, но это не кажется хорошей идеей.
Я предполагаю, что я что-то упускаю.
Ответы
Как правило, для простых кнопок на панели такого положения нет. UIControl, такой как UIButton, имеет событие .menuActionTriggered
, и в этот момент вполне разумно создать и назначить меню элементу управления, тем самым реализуя динамическое меню, которое создается непосредственно перед появлением меню.
Но вы не можете сделать это с элементом кнопки панели - если это не пользовательский элемент кнопки панели просмотра с UIButton в нем.
В противном случае вам нужно было бы наблюдать за окружающими условиями через какой-то другой механизм и просто менять меню элемента панели каждый раз, когда условия меняются. Звучит как заноза в заднице, но, вероятно, это ваш единственный вариант. (Насколько я понимаю, именно это вы имеете в виду, когда говорите: «И третий вариант, кажется, перетасовывает меню при каждом изменении, которое может повлиять на него, но это не кажется хорошей идеей».)
Я думаю, что то, о чем вы просите, разумно, и кажется глупым, что для этого нет условий; Если у вас есть хороший вариант использования, я бы рекомендовал подать запрос на улучшение в Apple.