如何在Swift的TextField中禁用Pasting?

我有一个带数字键盘的TextField,只有包含数字时才运行该功能.

用户崩溃应用程序的唯一选择是他是否会在TextField中粘贴字母并单击“确定”.

如何在TextField中禁用粘贴?

我同意Leonardo Savio Dabus,如果我是你,我将使用字符串检查并发出警告,这会让事情变得更容易.但是,如果禁用粘贴选项是一个非常想要放入应用程序的花哨功能,那么您需要做更多的工作.我将提供以下步骤.

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

import Foundation
import UIKit  // don't forget this

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

第2步:使用ViewController连接故事板.您需要像通常情况一样声明IBOutlet:

@IBOutlet var textFieldA: CustomUITextField?

将@IBOutlet旁边的圆圈连接到故事板中的textField.那么,这很重要且容易被忽略:

>转到您的故事板
>单击目标TextField
>选择Identity Inspector(第3个)
>将类更改为CustomUITextField

下面提供了快照.

就是这样,希望这有效.

信用:

主要参考https://teamtreehouse.com/forum/disable-paste-in-uitextfielduitextview-swift

如果你想了解更多关于canPerformAction方法的行为,虽然是Objective-C版本,但是这些概念是共享的:How can I detect that a user has tapped a formatting button in a UIMenuController?

相关文章

软件简介:蓝湖辅助工具,减少移动端开发中控件属性的复制和粘...
现实生活中,我们听到的声音都是时间连续的,我们称为这种信...
前言最近在B站上看到一个漂亮的仙女姐姐跳舞视频,循环看了亿...
【Android App】实战项目之仿抖音的短视频分享App(附源码和...
前言这一篇博客应该是我花时间最多的一次了,从2022年1月底至...
因为我既对接过session、cookie,也对接过JWT,今年因为工作...