Безопасное текстовое поле tvOS, текст не центрирован по вертикали - PullRequest
0 голосов
/ 07 апреля 2020

В приложении Apple TV я хотел сделать текстовый файл пароля защищенным , поэтому я проверил свойство Secure Text Entry в инспекторе атрибутов, но вертикальное выравнивание текста текста стало не в center как на этом изображении текст не центрирован по вертикали , я попытался установить contentVerticalalignment = center, но все еще не работает, любая помощь, пожалуйста

Ответы [ 3 ]

0 голосов
/ 06 мая 2020

Может быть, это очевидно, но я думаю, что происходит то, что символ маркера, используемый для безопасного ввода текста, не центрируется вертикально - маркеры имеют тенденцию выглядеть лучше с другим текстом, когда они немного выше центральной линии. Я думаю, что все выглядит хорошо, как есть, но один из способов исправить это - развернуть собственное защищенное текстовое поле, чтобы вы могли использовать другой символ.

0 голосов
/ 07 мая 2020

@ Dio go Ответ T был правильным, однако я попытался изменить шрифт, который я использую для текстового поля, и это также решило проблему для меня: D

0 голосов
/ 06 мая 2020

Возможно, есть лучший способ исправить, но я взломал textRect(forBounds:) в подклассе UITextField:

    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))
    }

Возможно, вам придется настроить перевод, чтобы он соответствовал вашему шрифту и размерам.

...