【发布时间】:2020-12-11 08:42:14
【问题描述】:
当您在 UITextField 的某些文本下划线然后单击它时,如果光标正好在带下划线的文本的右侧或内部,则整个文本字段都会被带下划线。有没有办法避免这种情况?
override func viewDidLoad() {
super.viewDidLoad()
let textField1 = UITextField(frame: CGRect(x: 20, y: 100, width: 300, height: 40))
textField1.borderStyle = UITextField.BorderStyle.roundedRect
textField1.allowsEditingTextAttributes = true
view.addSubview(textField1)
let textField2 = UITextField(frame: CGRect(x: 20, y: 150, width: 300, height: 40))
textField2.borderStyle = UITextField.BorderStyle.roundedRect
textField2.allowsEditingTextAttributes = true
view.addSubview(textField2)
}
【问题讨论】:
-
改用 UITextView。
-
@AdilSoomro:谢谢。那行得通。 UITextView 下划线的行为正确,但需要做一些工作才能使其看起来和行为像 UITextField。您必须自己做占位符文本,并且必须确保 Return 键不会开始新行。我使用 UILabel 作为占位符文本。在 textView(_:shouldChangeTextIn:replacementText) 我检查了用于隐藏和取消隐藏占位符标签的空文本。在同一个函数中,我检查了换行符。我还必须使用插图来正确定位文本。
标签: ios swift uitextfield underline