将 uitextfield 3 空间中的光标向右移动

Posted

技术标签:

【中文标题】将 uitextfield 3 空间中的光标向右移动【英文标题】:Move cursor in uitextfield 3 space to the right 【发布时间】:2021-03-15 12:51:33 【问题描述】:

当我单击 uitextfield 时,如何在 uitextfield 中向右移动和显示光标 3 个空格。我将 uitextfield 设为圆角并将约束从 main.storyboard 向左“10”放置,当我单击 uitextfield 时,光标显示在 uitextfield 之外。下面是快速代码。

@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

【问题讨论】:

【参考方案1】:

要实现这一点,您需要通过子类化标准对象然后覆盖设置内容边界(即插入)的函数来创建自定义 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 中的文本字段的类设置为您的自定义类。

【讨论】:

以上是关于将 uitextfield 3 空间中的光标向右移动的主要内容,如果未能解决你的问题,请参考以下文章

VI 日常使用

禁用 UITextField 中的闪烁光标?

习题8-3 数组循环右移(20 分)

[PTA]习题8-3 数组循环右移

习题8-3 数组循环右移 (20 分)

如何使光标的高度与 UITextField 中的文本高度相同?