如何从 iOS 的 UIMenuController 中删除默认的 UIMenuItem?
Posted
技术标签:
【中文标题】如何从 iOS 的 UIMenuController 中删除默认的 UIMenuItem?【英文标题】:How to remove the default UIMenuItem from the UIMenuController in iOS? 【发布时间】:2011-05-20 16:08:11 【问题描述】:我想从 UIMenuController 中删除一些默认的 UIMenuItem 对象,例如“剪切”、“复制”等。
怎么做?
谢谢。
【问题讨论】:
【参考方案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];
【讨论】:
你是如何去掉粘贴选项的?我对粘贴进行了同样的尝试,但它出现了。我猜是因为粘贴板已经有一些内容了..【参考方案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。
【讨论】:
以上是关于如何从 iOS 的 UIMenuController 中删除默认的 UIMenuItem?的主要内容,如果未能解决你的问题,请参考以下文章
如何从 Xamarin.iOS 中的 iOS 扩展调用 NSUserDefaults Observer