• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

ios - 应用本地化时 UITextField 占位符的颜色不同

[复制链接]
菜鸟教程小白 发表于 2022-12-11 18:15:38 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我有一个非常奇怪的问题。我有一个带有 IBInspectable var 的 UITextField 类来更改它的占位符颜色,我正在这样做:

attributedPlaceholder = NSAttributedString(string: placeholder != nil ?  placeholder! : "", attributes:[NSForegroundColorAttributeName : color])

当应用方案设置为System languageEnglish或任何LTR的语言时,它可以正常工作。

但当它设置为希伯来语或任何其他 RTL 语言时,它根本不会显示。 但是,在 Debug Hierarchy View 中显示 placeholder 在那里。

请注意,我使用 code 中的 Localizable.strings 而不是本地化 Storyboard来设置翻译。 除了 UITextfield 的占位符

外,一切正常

谢谢

enter image description here

编辑: 显然,所有发生的事情都是 attributedPlaceholder 在应用程序处于 LTR 模式时没有任何效果。 我将其中一个 UITextfields 背景更改为白色,它显示了。只有 attributedPlaceholderNSAttributedString 的颜色在 RTL 模式下不起作用

仍然需要一个解决方案

enter image description here



Best Answer-推荐答案


试试这个:

extension UITextField{

    override func setLocalized() -> Void {
        if UtilityClass.isLanguageRTL()// check RTL or LTR here {
            self.textAlignment = .right
            self.semanticContentAttribute = .forceRightToLeft
        }
        else{
            self.textAlignment = .left
            self.semanticContentAttribute = .forceLeftToRight
        }
    }

}

在 ViewWillAppear 中

    textField1?.setLocalized()
    textField2?.setLocalized()

关于ios - 应用本地化时 UITextField 占位符的颜色不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45057861/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap