【问题标题】:tvOS Secure Text Field , Text is not Vertically CenteredtvOS 安全文本字段,文本不是垂直居中的
【发布时间】:2020-04-07 06:21:11
【问题描述】:

在 Apple TV 应用程序中,我想让 密码文本提交安全,所以我检查了 Secure Text Entry 属性检查器中的属性,但 文本的文本垂直对齐方式不在中心 如此图像text is not vertically centered 中,我尝试设置contentVerticalalignment = center 但仍然无法正常工作,请提供任何帮助

【问题讨论】:

    标签: swift uitextfield tvos


    【解决方案1】:

    也许有更好的修复方法,但我在 UITextField 子类中使用了 textRect(forBounds:)

        override func placeholderRect(forBounds bounds: CGRect) -> CGRect {
            guard isSecureTextEntry else {
                return super.placeholderRect(forBounds: bounds)
            }
    
            return super.textRect(forBounds: bounds)
        }
    
        override func textRect(forBounds bounds: CGRect) -> CGRect {
            guard isSecureTextEntry else {
                return super.textRect(forBounds: bounds)
            }
    
            return bounds.applying(.init(translationX: 0, y: 10))
        }
    

    您可能需要调整翻译以适合您的字体和大小。

    注意:这在 iOS 14 上不是必需的。

    【讨论】:

    • 像魅力一样工作谢谢,我必须创建一个 UITextField 类型的类,在其中我添加了上面的覆盖,然后将它用于我的密码文本字段。
    【解决方案2】:

    也许这很明显,但我认为用于安全文本输入的项目符号字符不是垂直居中的——当项目符号位于中心线上方一点时,它们与其他文本一起看起来会更好。我认为它看起来不错,但修复它的一种方法是滚动您自己的安全文本字段,以便您可以使用不同的字符。

    【讨论】:

    • 我为提交的文本使用了不同的字体,如果这就是你的意思,那也可以。非常感谢
    【解决方案3】:

    @Diogo T 的回答是正确的,但是我尝试更改用于文本字段的字体,这也解决了我的问题:D

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-10-15
      • 2015-09-16
      • 1970-01-01
      • 2015-06-06
      • 1970-01-01
      • 2023-03-05
      相关资源
      最近更新 更多