Как ДЕЙСТВИТЕЛЬНО удалить копию из UIMenuController

Очевидно, раньше существовал простой способ предотвратить появление метки «Еще ...» в 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: вызывается для каждого элемента системного меню, кроме copy: поэтому в результате всегда отображается элемент меню системного копирования. Это означает, что если у вас более одного элемента пользовательского меню, они всегда скрыты за «More ...»

Итак, есть ли способ действительно удалить элемент копии системы или какой-либо альтернативный способ предотвратить скрытие элементов меню за «More ...»?

Update

Это результат, который я получаю, когда переопределяю canPerformAction: withSender: обратите внимание, что метод никогда не вызывается для действия «copy:»:

cannot perform action cut: with sender .
cannot perform action select: with sender .
cannot perform action selectAll: with sender .
cannot perform action paste: with sender .
cannot perform action delete: with sender .
cannot perform action promptForReplace: with sender .
cannot perform action _showMoreItems: with sender .
cannot perform action _setRtoLTextDirection: with sender .
cannot perform action _setLtoRTextDirection: with sender .
can perform action customCopy: with sender .
can perform action custom1: with sender .
cannot perform action custom2: with sender .
can perform action custom3: with sender .
can perform action custom4: with sender .
cannot perform action cut: with sender .
cannot perform action select: with sender .
cannot perform action selectAll: with sender .
cannot perform action paste: with sender .
cannot perform action delete: with sender .
cannot perform action promptForReplace: with sender .
cannot perform action _showMoreItems: with sender .
cannot perform action _setRtoLTextDirection: with sender .
cannot perform action _setLtoRTextDirection: with sender .

21
задан Community 23 May 2017 в 12:02
поделиться