占位符文本,并在UITextField中未对齐的文本中键入

时间:2012-07-12 22:52:16

标签: objective-c ios uitextfield

我有一个带有一些占位符文本的UITextfield。

我使用了两种对齐属性。然而,持有者文本仍然有点偏向上方。任何人都可以帮助我吗?

感谢。

4 个答案:

答案 0 :(得分:3)

textField.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter;

答案 1 :(得分:1)

这是我在MonoTouch中的解决方案,因为它必须修复占位符与文本的对齐方式。正如我在评论中指出的那样 - 有三个不同的部分:编辑,静态文本和静态占位符。 Objective-C中的等价物是 drawTextInRect: drawPlaceholderInRect:

我的解决方案是子类化并抵消错误对齐的项目。不幸的是,这个问题似乎与字体文件本身以及编辑模式如何影响它有关,与iOS呈现静态文本的方式有关。

希望这有助于某人。

艾里

public class MyTextField : UITextField
{
    public MyTextField(RectangleF rect) : base(rect)
    {
    }

    public override void DrawPlaceholder(RectangleF rect)
    {
        base.DrawPlaceholder(new RectangleF(rect.X, rect.Y + 2, rect.Width, rect.Height));
    }

    public override void DrawText(RectangleF rect)
    {
        base.DrawText(new RectangleF(rect.X, rect.Y + 2, rect.Width, rect.Height));
    }
}

答案 2 :(得分:0)

根据UITextField文档,您应该使用textAlignment属性。正如文档所述“此属性适用于主文本字符串和占位符字符串。此属性的默认值为UITextAlignmentLeft。”

所以你的代码看起来像:

textfield.textAlignment = UITextAlignmentLeft

或取决于您希望如何对齐UITextAlignmentCenter符号后UITextAlignmentRight=使用的文字。

答案 3 :(得分:0)

我会说使用CGRectMake来创建框架的Y尺寸。也许让它变小?