使用IBInspectable禁用UITextField上的剪切、复制和粘贴

3
请看以下代码,但对我无效。
 @IBInspectable var pasteOption: Bool = true {
        didSet {
            func canPerformAction(action: Selector, withSender sender: AnyObject) -> Bool {
                if action == "selectAll:" {
                    return pasteOption
                }
                if action == "select:" {
                    return pasteOption
                }
                if action == "cut:" {
                    return pasteOption
                }
                if action == "copy:" {
                    return pasteOption
                }
                if action == "paste:" {
                    return pasteOption
                }
                return super.canPerformAction(action, withSender: sender)
            }
        }
    }

我想使用IBInspectable禁用UITextfield的剪切、复制、粘贴功能。


这段代码属于哪个类? - bcamur
分离 UITextField https://github.com/JanakLN/TextField---IBDesignable - Janak Thakkar
1个回答

1
你需要像这样定义你的变量:

@IBInspectable var pasteOption: Bool = true

然后像这样重写你的 UITextFieldcanPerformAction 函数:

override func canPerformAction(action: Selector, withSender sender: AnyObject?) -> Bool {
    if action == "selectAll:" {
        return pasteOption
    }
    if action == "select:" {
        return pasteOption
    }
    if action == "cut:" {
        return pasteOption
    }
    if action == "copy:" {
        return pasteOption
    }
    if action == "paste:" {
        return pasteOption
    }
    return super.canPerformAction(action, withSender: sender)
}

通过这样做,您可以为函数中定义的特定操作(在本例中为selectAllselectcutcopypaste)返回pasteOption的值,每当您的文本字段打开编辑菜单时。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接