【问题标题】:UITextField cuts off descenders on Unicode charactersUITextField 切断 Unicode 字符的下行
【发布时间】:2012-05-17 15:53:56
【问题描述】:

有什么方法可以让 UITextField 正确显示包含 unicode 下标字符(例如 2 、 ₃ )的 NSString 而不将它们切断?我从 IB 中创建的 UITextField 开始。

我试过了:

  • 在代码中将 UITextField 上的 frame.size.height 设置得更大(只是将截断字符居中放在更高的框中)

  • 将 contentVerticalAlignment 属性更改为 UIControlContentVerticalAlignmentTop- 只是将截断字符推到顶部

  • 使用 clipSubviews/Autoresize Subviews 播放 - 无效

这是针对化学程序的,因此查看数字的下半部分很重要。救命!

【问题讨论】:

    标签: cocoa-touch uitextfield unicode-string


    【解决方案1】:

    我还没有找到使它适用于UITextField 的方法。

    在我的例子中,我将它用于占位符文本。对我有用的是使用UILabel 作为占位符文本。这些正确显示下标。

    【讨论】:

      【解决方案2】:

      您是否尝试将字体设置为较小的尺寸?

      textField.font = [UIFont systemFontOfSize:14];
      

      -=-=-=-=-=-

      这是同一个问题的链接,他们似乎通过创建自定义 UILabel 子类并修改其 (CGSize)sizeThatFits:(CGSize)size 方法解决了这个问题。

      Calling method sizeToFit on a UILabel that has subscripts is not working

      【讨论】:

      • 是 - 没有效果。下标被缩小到更小的尺寸,然后又被忠实地切掉,这有点病态。
      【解决方案3】:

      使用步骤here,您可以编辑要添加到项目中的自定义字体文件,并增加或减少其升序和/或降序,以便为您的下标留出垂直空间。

      【讨论】:

        猜你喜欢
        • 2013-08-30
        • 1970-01-01
        • 2019-01-29
        • 1970-01-01
        • 2013-06-25
        • 2011-08-05
        • 1970-01-01
        • 2015-05-22
        • 1970-01-01
        相关资源
        最近更新 更多