如何更改特定 UITextField 的闪烁条/线的大小?

Vat*_*kla 5 caret uitextfield ios swift


我正在开发一个项目(Swift4,Xcode 9.2),该项目具有获取文本输入的功能,并且闪烁的条/线应该很大(it should be Square instead of bar/line),所以我UITextField为 Text放置了一个,但我不明白如何更改该闪烁的线/条的大小.

那么,是否可以更改线/条的大小?如果是,那么该怎么做?我知道如何改变那条线/条的颜色,但这是不同的。

Kam*_*ran 6

您可以通过overriding以下frame方法更改大小cursor

class CustomTextField: UITextField {

    override func caretRect(for position: UITextPosition) -> CGRect {
        var rect = super.caretRect(for: position)
        let size = CGSize(width: 10, height: 50)
        // Calculating center y
        let y = rect.origin.y - (size.height - rect.size.height)/2
        rect = CGRect(origin: CGPoint(x: rect.origin.x, y: y), size: size)
        return rect
    }
}
Run Code Online (Sandbox Code Playgroud)

为此CustomTextFieldxib/storyboard身份检查器中设置类textField


小智 1

我们无法更改光标高度,但我们可以做一些技巧,选择您的文本字段并将文本字段边框样式更改为UITextBorderStyleNone

检查以下链接,该链接已给出答案

之后根据需要增加文本字段的字体大小,然后得到输出为