Как удалить UIMenuItem по умолчанию из UIMenuController в iOS? - PullRequest
2 голосов
/ 20 мая 2011

Я хочу удалить некоторые объекты UIMenuItem по умолчанию, такие как «Вырезать», «Копировать» и т. Д., Из UIMenuController.

Как это сделать?

Спасибо.

Ответы [ 2 ]

6 голосов
/ 20 мая 2011

Создайте подкласс для представления, представляющего меню (например, UIWebView, UITextView) и переопределите -canPerformAction:withSender: для возврата NO для элементов меню, которые вы не хотите отображать.

- (BOOL)canPerformAction:(SEL)action withSender:(id)sender {
    if (action == @selector(copy:)) {
        return NO;
    }
    else {
        return [super canPerformAction:action withSender:sender];
    }
}
0 голосов
/ 16 июля 2018
class TextView: UITextView {
    override func canPerformAction(_ action: Selector, withSender sender: Any?) -> Bool {
        if action == #selector(copy(_:)){
            return true
        }
        else{
            return false
        }
    }
}

В Swift 4

0

Как сказал Питер Стюарт: создайте подкласс представления, представляющего меню (например, UITextView)

затем override func canPerformAction(_ action: Selector, withSender sender: Any?) -> Bool

вернуть false для тех пунктов меню, которые вы не хотите отображать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...