Как называется этот сегмент на UIMenuItem? - PullRequest
0 голосов
/ 19 мая 2011

UIMenuItem

Я знаю, что UIMenuController может отображать всплывающее окно, содержащее пункты «Вырезать», «Копировать», «Вставить», «Выделить / все» и другие элементы системного меню.Но я не знаю, что это за последний элемент, что видно на скриншоте выше.Какова его функция?Это вызывает что-то в приложении, и если да, то как?Это можно отключить?В этом случае я хотел бы отключить или удалить элемент программным способом, не отключая никакие международные клавиатуры.

Ответы [ 2 ]

1 голос
/ 28 июня 2011

Эта самая правая "стрелка" UIMenuItem на самом деле является системным элементом.Селектор для него называется _setRtoLTextDirection: или _setLtoRTextDirection: я подозреваю, что apple не захочет, чтобы вы возились с ними, поскольку автозаполнение в XCode не помогает вам при попытке ввести эти методы.

Чтобы отключить их, проверьте их и верните «NO» в переопределенном методе - (BOOL)canPerformAction:(SEL)action withSender:(id)sender.

Для всех, кто хочет отключить значение по умолчанию UIMenuItems в UIMenuItemController, вы можете найтиполный список (или большинство из них по крайней мере) в моем блоге .

1 голос
/ 19 мая 2011

Если вы говорите о программном отключении пункта меню RTL без отключения международных клавиатур, похоже, что вы не можете - по крайней мере, при использовании UIMenuController. Если вы посмотрите на документацию для его свойства menuItems, это объясняет, что пользовательские элементы могут быть вставлены после системных элементов, но не указывает, что вы можете удалить те системные элементы, которые по каким-то причинам вам не нужны.

Нажатие на него может привести к тому, что iOS вызовет метод setBaseWritingDirection:forRange: протокола UITextInput. Я не знаю об этом, хотя - я могу только догадываться, так как нет четкого объяснения этого, о котором я узнаю после короткого разбора документации.

...