【问题标题】:iOS Swift Remove Paste Option [duplicate]iOS Swift删除粘贴选项[重复]
【发布时间】:2026-02-21 08:05:02
【问题描述】:

我想从选择器中删除“粘贴”选项

我已经尝试了下面的代码,但它向选择器添加了其他选择并且粘贴选项仍然存在,它只是禁用了功能

override func canPerformAction(action: Selector, withSender sender: AnyObject?) -> Bool {
    if action == "paste:" {
        return false
    }
    return true
  }

我想一起删除粘贴,这样用户甚至无法选择查看或点击它

【问题讨论】:

  • 尝试比较 actionlet pasteAction = "paste:" as Selector 或类似的东西。
  • 该线程解释了如何禁用该功能,我想从选择器中完全删除它,所以我的选择器只显示选择,全选
  • 哦,我明白了。我误解了你在问什么。抱歉!

标签: ios objective-c xcode swift


【解决方案1】:

看看 UIMenuController 你应该可以使用 var menuItems: [AnyObject]?

设置您自己的对象。

这不是简单的开关现有按钮,看起来你必须自己提供。

【讨论】:

  • 是否可以只为视图控制器完全隐藏 UIMenuController?
  • 试试 'code' let menu = UIMenuController() ; menu.setMenuVisible(假,动画:假)
  • 仍然出现上面的代码。我检查了 menu.menuItems.count 并返回 nil 但我仍然有选择器出现
【解决方案2】:

试试这个:

第 1 步:您需要创建另一个扩展 UITextField 的类。在这个例子中,我创建了我的CustomizedUITextField

import UIKit

class CustomTextField: UITextField {
    override func canPerformAction(action: Selector, withSender sender: AnyObject?) -> Bool {
        if action == "paste:" {
            return false
        }

        return super.canPerformAction(action, withSender: sender)
    }
}

【讨论】: