【问题标题】:UITextField not scrolling horizontallyUITextField 不水平滚动
【发布时间】:2013-08-09 18:32:49
【问题描述】:

我正在尝试制作一个小型计算器应用程序。 当按下 UIButton 时,Button 标题将添加到 UITextField。

种类:

myuitextfield.text = [myuitextfield.text stringByAppendingString:[button currentTitle];

当我到达文本字段的末尾时,文本会被截断。如何禁用此功能,以便文本字段自动开始滚动并允许添加更多字符?

我在 Interface Builder 中尝试了所有可能的选项,但没有任何运气。 UITextField 不应该自动滚动吗?当使用本机键盘并输入文本时,我可以看到这种行为。

我选择了 UITextField,因为我只需要 1 行。

为了说明问题: 当我使用自定义 UIButtons 输入文本时,文本被截断

当我点击 UITextField 并使用键盘输入文本时,我可以输入无限的文本并且文本不会被截断。

【问题讨论】:

  • 尝试更改它的自动换行或字符换行属性。
  • @David 你有什么解决办法吗?

标签: uitextfield horizontal-scrolling


【解决方案1】:

如果您在 iOS7 上遇到此问题,在受到 this post 的启发后,我已经设法修复它。在我的情况下,我有一个用于输入电子邮件地址的字段,在到达边缘后,用户可以继续输入,但文本将不可见(场外)。

首先,向您的 UITextField 添加一个回调,以便您可以跟踪该字段的文本更改:

[self.field addTarget:self action:@selector(textFieldDidChange:) forControlEvents:UIControlEventEditingChanged];

然后在键入时评估输入字符串的大小(以像素为单位),并在到达字段区域边缘时从左到右更改文本对齐方式:

- (void)textFieldDidChange:(NSNotification *)aNotif{

float maxNumPixelsOnScreen = 235; // Change this value to fit your case
CGSize maximumSize = CGSizeMake(maxNumPixelsOnScreen + 10, 1);
NSString *aString = self.field.text;
CGSize stringSize = [aString sizeWithFont:fieldFont
                           constrainedToSize:maximumSize
                               lineBreakMode:NSLineBreakByWordWrapping];

self.field.textAlignment = NSTextAlignmentLeft;
if (stringSize.width >= maxNumPixelsOnScreen)
    self.field.textAlignment = NSTextAlignmentRight;
}

注意:

  • self.field 是有问题的 UITextField
  • maximumSize:我将宽度加 10 以略超过定义的限制
  • fieldFont 是用于渲染文本字段的 UIFont

希望对你有帮助!

【讨论】:

  • 它几乎可以解决问题,但它有问题,并且不推荐使用 'sizeWithFont:fieldFont constrainedToSize:maximumSize:lineBreakMode:'。一个错误是,如果您有占位符文本并单击 X 清除输入的文本,则占位符文本右对齐。
【解决方案2】:

您必须添加 UITextview 并将行数限制为 2。Textfield 不适用于两行。Textview 与 textfields 相同,但代表和某些属性不同。

【讨论】:

  • 因为我想做一个计算器,我只需要 1 行。这就是我选择 UITextfield 的原因。
  • UITextField 与 UITextView 不同,它们的行为也不同。不要以为你可以换另一个。
猜你喜欢
  • 2014-09-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-09
  • 1970-01-01
  • 2015-06-19
相关资源
最近更新 更多