RTL iOS9上奇怪的UITextField占位符行为
Posted
技术标签:
【中文标题】RTL iOS9上奇怪的UITextField占位符行为【英文标题】:Weird UITextField Placeholder Behaviour On RTL iOS9 【发布时间】:2016-07-06 22:44:28 【问题描述】:在从 xib
创建 UITextField
并在 RTL 键盘语言上调用 resignFirstResponder()
方法时,UITextField
占位符对齐是正确的。
在以编程方式创建 textField 并在 RTL 键盘语言上调用 resignFirstResponder()
方法时,UITextField
占位符对齐在左侧。
let txtField = UITextField(frame: CGRectMake(0, 0, 200, 50))
我想使用xib
文件中的UITextField
而不是以编程方式。
注意: 清除所有约束没有帮助。 问题仅在 ios 9 中
我不知道为什么在从 xib
文件创建 UITextField
时占位符的行为会有所不同,
请帮忙。
【问题讨论】:
【参考方案1】:检查semanticContentAttribute
(UIView
的属性)的值,该值可让您确定布局 LTR/RTL 的方向。
它是作为改进的 RTL 系统支持的一部分在 iOS 9 上引入的,它可能是导致您在 iOS 8 和 9 之间看到差异的原因。
【讨论】:
所以这个属性需要?【参考方案2】:RTL 是从右到左的脚本,因此 xib 文件中的占位符似乎在做正确的事情,因为用户将从右侧开始。你还想要左边的占位符吗?
【讨论】:
谢谢,是的,我想要左边的占位符仍然是 RTL 或 LTR @BenjaminHalimi 在实际设备上运行它时,它还在右边吗? 如果我用 RTL 键盘语言书写,则占位符会在光标所在的右侧跳转。以上是关于RTL iOS9上奇怪的UITextField占位符行为的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 xib 文件在单元格中 rtl UITextField?
如何调整 UITextField 占位符文本以适合 UITextField 宽度?