как отключить UIMenuControll (вырезать, копировать, вставить, выбрать все, удалить) в подклассе UIviewController?

я реализовал много методов, но вставка не скрывается. я использую Xcode версии 4.5.2

-(BOOL)canPerformAction:(SEL)action withSender:(id)sender {
    UIMenuController *menuController = [UIMenuController sharedMenuController];
    if (menuController) {
        [UIMenuController sharedMenuController].menuVisible = NO;

    }
    return NO;  
}

каждый метод, кажется, не работает для меня. может ли кто-нибудь помочь мне в этом? заранее спасибо


person iAhmed    schedule 09.05.2013    source источник
comment
попробуйте создать подкласс ваших выходов - проверьте мой пример для UITextFields stackoverflow.com/a/14582785/1702413   -  person TonyMkenu    schedule 11.05.2013


Ответы (2)


Вам нужно сделать это, чтобы включить/отключить элементы UIMenuController.

  1. Чтобы показать/скрыть элементы UIMenuController, ваше представление или контроллер представления должны реализовать canBecomeFirstResponder (возвращая YES/NO для Show/Hide).

  2. Вы также можете реализовать метод canPerformAction:withSender: UIResponder для отключения или включения команд пользовательского интерфейса {копировать, выбрать, выбрать все, вставить и т. д.} в зависимости от контекста.

  3. Или вы можете переопределить метод Update для UIMenuController для обработки пользовательского поведения отдельного элемента. Например, если на монтажном столе нет данных совместимого типа, команда Paste будет отключена. Таким образом, вы можете принудительно показать/скрыть пункт меню вставки, переопределив этот метод.

person Deminem    schedule 09.05.2013

Вы можете попробовать это: в методе viewDidLoad вашего контроллера установите невидимый.

[[UIMenuController sharedMenuController] setMenuVisible:NO];

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

person Mundi    schedule 09.05.2013