Pra*_*ore 1 iphone uitextfield ios swift
在切换iOS textField isSecureTenxtEntry时.
我的代码是这样的
textField?.isSecureTextEntry = !textField.isSecureTextEntry
Run Code Online (Sandbox Code Playgroud)
设备是iPhone 6.
首先讨论为什么会这样.
点字符宽度与普通字符不同,因此当您更改isSecureTextEntry属性值时,UITextField不会刷新这就是为什么会出现额外空格.
要解决此问题,您可以使用下面的代码
txtPassword.isSecureTextEntry = !txtPassword.isSecureTextEntry
let str = txtPassword.text
txtPassword.text = ""
txtPassword.text = str
Run Code Online (Sandbox Code Playgroud)
我在上面的代码中做了什么,在更改isSecureTextEntry临时变量中的存储值的值并清空UITextField之后,UITextField使用临时变量重新分配它.
这个问题是由于
secure dot character和 simple 字符的字符大小不同而引起的。点字符的尺寸更宽,这就是为什么当您禁用安全文本输入时,字符会收缩但光标保持在同一位置。
虽然这个问题不应该出现在最新的 Xcode 中,但我在 Xcode 6.3 中遇到了同样的问题。
解释:
当您单击按钮切换secureTextEntry,becomeFirstResponder再次为您的 textField 设置 时,它将调用键盘观察器并将光标重置到正确位置。
textField?.isSecureTextEntry = !textField.isSecureTextEntry
if textField?.isFirstResponder {
textField?.becomeFirstResponder()
}
Run Code Online (Sandbox Code Playgroud)
希望这会帮助你。
| 归档时间: |
|
| 查看次数: |
836 次 |
| 最近记录: |