【问题标题】:How to disable UITextview selection text, copy/paste UIMenuController but still have hyperlinks working [Not duplicate] [duplicate]如何禁用 UITextview 选择文本,复制/粘贴 UIMenuController 但仍然有超链接工作 [不重复] [重复]
【发布时间】:2014-03-21 06:33:25
【问题描述】:

我想禁用复制/粘贴菜单,我在 UITextView 中使用 HTML 标记,其中有多个超链接,并且只想禁用菜单。

我的 texview 图片

【问题讨论】:

  • 我在子类中使用此代码,无法在 textview 中按下链接,也不会显示复制/粘贴菜单。 - (BOOL)canBecomeFirstResponder { 返回 NO;然后我写这段代码然后允许按下链接,但在其他文本中显示“定义” - (BOOL)canPerformAction:(SEL)action withSender:(id)sender { if (action == @selector(selectAll:) && action = = @selector(select:) && action == @selector(cut:) && action == @selector(copy:) && action == @selector(paste:)) 返回NO; return [super canPerformAction:action withSender:sender];在这种情况下请帮助我。
  • 我完全想要上述问题。你找到了任何解决方案??

标签: ios iphone ios7 ios5 uitextview


【解决方案1】:

只需尝试创建一个覆盖canPerformAction:withSender: 方法的 UITextView 子类

- (BOOL)canPerformAction:(SEL)action withSender:(id)sender
{
    if (action == @selector(paste:))
        return NO;
    return [super canPerformAction:action withSender:sender];
}

【讨论】:

  • 很抱歉没有成功!!!!!!还有什么办法???
【解决方案2】:

你可以玩这个属性:

还有这个:

【讨论】:

  • 可选属性修复它。 (我有 UITextView 子类)
  • 或代码textView.selectable = false
  • 是的,但是用户不能选择 textview 来写!只是要求禁用操作的问题!
【解决方案3】:

你需要创建一个 UITextView 的子类并重写 canPerformAction 方法。

- (BOOL)canPerformAction:(SEL)action withSender:(id)sender
{
    if (action == @selector(copy:) || action == @selector(selectAll:) || action == @selector(paste:))
        return NO;
    return [super canPerformAction:action withSender:sender];
}

【讨论】:

  • 为了做到这一点,你需要继承你的 UITextView 并放置这个方法。 override func canPerformAction(_ action: Selector, withSender sender: Any?) -> Bool { if (action == #selector(copy(:))) { return false } if (action == #selector(cut( :))) { return false } if (action == #selector(paste(_:))) { return false } return super.canPerformAction(action, withSender: sender) }
猜你喜欢
  • 1970-01-01
  • 2014-03-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-19
  • 2022-06-13
  • 1970-01-01
  • 2014-03-11
相关资源
最近更新 更多