#iphone #ios #ipad
#iPhone #iOS #iPad
Вопрос:
Я хочу удалить некоторые объекты UIMenuItem по умолчанию, такие как «Вырезать», «Копировать» и т.д., Из UIMenuController.
Как это сделать?
Спасибо.
Ответ №1:
Создайте подкласс представления, в котором представлено меню (например, 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];
}
}
Комментарии:
1. Как вы избавились от опции вставки? Я попробовал то же самое с пастой, но она появляется. Я думаю, это потому, что на доске для вставки уже есть некоторый контент..
Ответ №2:
class TextView: UITextView {
override func canPerformAction(_ action: Selector, withSender sender: Any?) -> Bool {
if action == #selector(copy(_:)){
return true
}
else{
return false
}
}
}
В Swift 4 ,
Как сказал Питер Стюарт: подклассируйте представление, в котором представлено меню (например. UITextView)
затем override func canPerformAction(_ action: Selector, withSender sender: Any?) -> Bool
верните false для пунктов меню, которые вы не хотите отображать.