gpt4 book ai didi

UITextField 不水平滚动

转载 作者:行者123 更新时间:2023-12-04 02:32:34 29 4
gpt4 key购买 nike

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

的种类:

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

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

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

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

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

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

最佳答案

如果您在 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

  • 希望能帮助到你!

    关于UITextField 不水平滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18119365/

    29 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com