【问题标题】:UITextField Alignment : Placeholder right aligned & Actual text gets left alignedUITextField 对齐:占位符右对齐和实际文本左对齐
【发布时间】:2016-09-24 05:55:41
【问题描述】:

我在xib 中设置了一个UITextField。文本 Alignment 设置为 right。当应用程序运行时,我看到 textfield 显示 placeholderright aligned 文本。当我开始输入时,它仍然与right 对齐。当我将光标从 textfield 移动到其他一些 UI 组件时,输入的文本将变为 left aligned

编辑: 在 textField 中编辑时,我在一种情况下部分解决了它。但是从本地数据源直接分配文本也有同样的问题。

编辑文本字段解决方案

- (void)textFieldDidEndEditing:(UITextField *)textField{
   textField.text = [textField.text stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
}

如果我说,仍然面临对齐问题,

textField.text = @"my Test";

在将文本分配给 textField 之前应用了与编辑模式中相同的逻辑,但它仍然自动左对齐:(

实际输出问题

XIB UITextField 的设置

【问题讨论】:

  • 为什么文本字段对齐和控件水平对齐不一样?
  • @Alok,即使我将控件对齐方式更改为右对齐,结果也没有变化。
  • @Ameer 好运吗?我也面临同样的问题
  • @Jeff 在设置文本方面还没有运气。

标签: ios objective-c iphone uitextfield ios9


【解决方案1】:

我已经尝试过与您执行的相同操作,并且效果很好。 我认为您必须删除该 textfield 并以新身份重新放置。 然后清理并重建您的项目。

确保您没有以编程方式向 textfield 提供任何值或参数。

【讨论】:

  • 感谢您的意见。我删除了文本字段并将其添加回来但结果仍然相同。
  • 您提到“不要以编程方式给出任何值”有什么具体原因吗?
【解决方案2】:

您可以执行以下操作:
1-将 textAligment 设置为右侧
2-将 UITextFieldDelegate 添加到 your.h
3- yourTextField.delegate = self
4-添加委托方法'willBeginEditing'并将文本字段对齐设置在其中
5-添加委托方法'didEndEditing'并将文本字段对齐设置在其中如果textfield.text是=@“”

编码愉快!

【讨论】:

  • 它不起作用。我有部分解决方案。请参阅我更新帖子的编辑部分。感谢您的输入巴希尔
【解决方案3】:

我一直在使用UILabel 类别类进行垂直对齐调整。其中有一个方法 +(void)loadand 在该方法中我正在使用以下行

method_exchangeImplementations(class_getInstanceMethod(self, @selector(textRectForBounds:limitedToNumberOfLines:)), class_getInstanceMethod(self, @selector(verticalAlignTextRectForBounds:limitedToNumberOfLines:)));
method_exchangeImplementations(class_getInstanceMethod(self, @selector(drawTextInRect:)), class_getInstanceMethod(self, @selector(verticalAlignDrawTextInRect:)));

这些特定的代码行给我带来了问题。它覆盖了UITexfield 的现有默认行为。评论这对我有用。 所以你的代码中也会有类似的东西。 希望这会对你有所帮助:)

【讨论】:

  • 我在我的一个类别中使用 method_exchangeImplementations,评论它对我有用
猜你喜欢
  • 2017-03-24
  • 2015-10-07
  • 1970-01-01
  • 1970-01-01
  • 2012-10-13
  • 2015-12-31
  • 2012-02-24
  • 2011-10-07
相关资源
最近更新 更多