将 uitextfield 3 space 中的光标向右移动

Move cursor in uitextfield 3 space to the right

当我点击 uitextfield 时,如何在 uitextfield 中向右移动并显示光标 3 个空格。我制作了 uitextfield 圆角并将约束从 main.storyboard 左移“10”,当我单击 uitextfield 时,光标显示在 uitextfield 之外。下面是 swift 代码。

@IBOutlet weak var txtSearch: UITextField!
override func viewDidLoad() {
        super.viewDidLoad()
        txtSearch.layer.cornerRadius = 22
        txtSearch.clipsToBounds = true
        txtSearch.layer.borderWidth = 2.0
        txtSearch.borderStyle = .none
}

要实现这一点,您需要通过子class标准对象创建自定义 UITextField,然后覆盖设置内容边界(即插入)的函数。您需要以点而不是字符为单位进行工作,因此请使用插入变量来获得您想要的外观。

class MyTextField: UITextField {
   var insetX: CGFloat = 20
   var insetY: CGFloat = 0
   
   override func textRect(forBounds bounds: CGRect) -> CGRect {
      return bounds.insetBy(dx: insetX , dy: insetY)
   }
   
   override func editingRect(forBounds bounds: CGRect) -> CGRect {
      return bounds.insetBy(dx: insetX , dy: insetY)
   }
}

您需要将 IB 中文本字段的 class 设置为您的自定义 class。