Там, по-видимому, обычно был простой способ, чтобы предотвратить появление ярлыка "Больше..." в UIMenuController, когда вы добавили несколько отдельных элементов меню. Вам просто нужно было удалить все элементы системного меню. Был даже обходной путь здесь для работы с копиями. Вам просто нужно было выполнить команду пользовательского копирования с помощью другого селектора, а затем переопределить canPerformAction: withSender: чтобы не отображать системную копию:
-(BOOL)canPerformAction:(SEL)action withSender:(id)sender
{
if (action == @selector(copy:))
return NO;
else
// logic to show or hide other things
}
К сожалению, этот метод больше не работает (по крайней мере, в подклассе UIWebView). canPerformAction: withSender: вызывается для каждого элемента системного меню, кроме копии: так что результат всегда отображается в пункте меню системной копии. Это означает, что если у вас есть несколько отдельных элементов меню, они всегда скрыты за "Подробнее..."
Итак, есть ли способ действительно удалить элемент копии системы или какой-то другой способ предотвратить скрытие элементов меню за "Подробнее..."?
Обновление
Это результат, который я получаю, когда я переопределяю canPerformAction: withSender: обратите внимание, что метод никогда не вызывается для действия "copy:":
cannot perform action cut: with sender <UIMenuController: 0x7227d30>.
cannot perform action select: with sender <UIMenuController: 0x7227d30>.
cannot perform action selectAll: with sender <UIMenuController: 0x7227d30>.
cannot perform action paste: with sender <UIMenuController: 0x7227d30>.
cannot perform action delete: with sender <UIMenuController: 0x7227d30>.
cannot perform action promptForReplace: with sender <UIMenuController: 0x7227d30>.
cannot perform action _showMoreItems: with sender <UIMenuController: 0x7227d30>.
cannot perform action _setRtoLTextDirection: with sender <UIMenuController: 0x7227d30>.
cannot perform action _setLtoRTextDirection: with sender <UIMenuController: 0x7227d30>.
can perform action customCopy: with sender <UIMenuController: 0x7227d30>.
can perform action custom1: with sender <UIMenuController: 0x7227d30>.
cannot perform action custom2: with sender <UIMenuController: 0x7227d30>.
can perform action custom3: with sender <UIMenuController: 0x7227d30>.
can perform action custom4: with sender <UIMenuController: 0x7227d30>.
cannot perform action cut: with sender <UIMenuController: 0x7227d30>.
cannot perform action select: with sender <UIMenuController: 0x7227d30>.
cannot perform action selectAll: with sender <UIMenuController: 0x7227d30>.
cannot perform action paste: with sender <UIMenuController: 0x7227d30>.
cannot perform action delete: with sender <UIMenuController: 0x7227d30>.
cannot perform action promptForReplace: with sender <UIMenuController: 0x7227d30>.
cannot perform action _showMoreItems: with sender <UIMenuController: 0x7227d30>.
cannot perform action _setRtoLTextDirection: with sender <UIMenuController: 0x7227d30>.
cannot perform action _setLtoRTextDirection: with sender <UIMenuController: 0x7227d30>.