【问题标题】:Get the width of UITextField secured text获取 UITextField 安全文本的宽度
【发布时间】:2020-05-06 01:43:45
【问题描述】:

我有一个 UITextField,当我将 isSecureTextEntry 设置为 true 时,它​​会用点替换文本,但是这段代码:
let size = (text as NSString?)?.size(withAttributes: typingAttributes)
获取不安全的文本宽度。如何获得安全的文本宽度(带点)?

在下面添加了两个屏幕截图。复选标记应靠近文本。
secured field
unsecured field

【问题讨论】:

  • 我不相信这是可能的(而且我相信这在某种程度上是故意不可能的,所以即使你找到了一种方法,看到它在未来的版本中出现故障我也不会感到惊讶)。我建议重新设计您的 UI,将复选标记放在字段之外。
  • 不确定这段代码的健壮性,但至少你可以试试"•".size(withAttributes: typingAttributes) * text.count + someMargin

标签: ios swift


【解决方案1】:

您可以创建一个与文本具有相同数量的项目符号字符(•)的字符串,然后获取它的长度。 This SO post 建议 iOS 使用一些可能的字符作为项目符号,包括 U+2022U+2981U+25cf。你可以试试看。

【讨论】:

  • 安全输入字段不承诺显示与字段中字符相同的点数。如果您粘贴到该字段中,它通常会放置大量的点,即使是一小段文字也是如此。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-05-03
  • 2012-08-11
  • 1970-01-01
  • 1970-01-01
  • 2014-02-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多