Где добавить пользовательские пункты меню в UIMenuController? - PullRequest
3 голосов
/ 03 ноября 2010

Я создал подкласс UITextView, и теперь я хочу расширить значение по умолчанию UIMenuController, добавив несколько кнопок. Выполнение расширения не является проблемой, мне просто нужно добавить немного UIMenuItem, так что массив menuItems общего экземпляра UIMenuController.

Мой вопрос сейчас: где я могу выполнить эту манипуляцию? MenuController - это одноэлементная реализация, поэтому каждое внесенное мной изменение будет влиять на все другие представления, поддерживающие меню. Так, где я собираюсь добавить дополнительные пункты меню и где я могу позже удалить их снова? Я ищу какой-то эквивалент для метода viewWillAppear UIViewController.

Или я слишком много волнуюсь, и это вполне хорошая практика - реализовать это в контроллере представления, содержащем мой подкласс UITextView? Однако это означает, что каждый контроллер представления, содержащий мой класс в качестве подпредставления, должен реализовывать один и тот же код. Есть ли лучший способ?

Редактировать: Конечно, есть еще один вариант - сохранить селекторы для моего класса уникальными, а все другие пользовательские представления возвращают NO для селектора в -respondsToSelector:. На мой взгляд, это лучшее решение для меня.

Какая лучшая практика?

Ответы [ 2 ]

2 голосов
/ 05 ноября 2010

Оказывается, это нормально работает для добавления элементов в делегат приложения.Конечно, вы должны убедиться, что другие виды, поддерживающие MenuController, возвращают NO для вашего конкретного селектора в -respondsToSelector:.

0 голосов
/ 03 ноября 2010

Хороший вопрос. Не уверен насчет лучшей практики.

Возможно, вы хотите использовать viewDidAppear и viewWillDisappear, чтобы изменить это.

...