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】:

检查semanticContentAttributeUIView 的属性)的值,该值可让您确定布局 LTR/RTL 的方向。

它是作为改进的 RTL 系统支持的一部分在 iOS 9 上引入的,它可能是导致您在 iOS 8 和 9 之间看到差异的原因。

【讨论】:

所以这个属性需要?【参考方案2】:

RTL 是从右到左的脚本,因此 xib 文件中的占位符似乎在做正确的事情,因为用户将从右侧开始。你还想要左边的占位符吗?

【讨论】:

谢谢,是的,我想要左边的占位符仍然是 RTL 或 LTR @BenjaminHalimi 在实际设备上运行它时,它还在右边吗? 如果我用 RTL 键盘语言书写,则占位符会在光标所在的右侧跳转。

以上是关于RTL iOS9上奇怪的UITextField占位符行为的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 xib 文件在单元格中 rtl UITextField?

如何调整 UITextField 占位符文本以适合 UITextField 宽度?

为啥 UITextview 没有 UITextField 之类的占位符属性 [重复]

UITextField 占位符问题

UITextField 中占位符文本的默认颜色是啥?

iOS开发中设置UITextField的占位文字的颜色,和光标的颜色