UITextField iOS的输入范围宽度

Posted

技术标签:

【中文标题】UITextField iOS的输入范围宽度【英文标题】:Input Range Width Of UITextField iOS 【发布时间】:2015-10-29 15:45:53 【问题描述】:

是否可以设置 UITextField 的输入范围(不是字符数)?您可以在下面查看我的屏幕截图。

我已经尝试过实现这个:Ellipsis at the end of UITextView

没有用,或者我做错了。

我想要的是限制用户输入的大小并使其成为省略号。 UITextfields 左侧的文本只是设置为子视图的 UILabel。

再一次...我需要帮助设置文本输入的范围,如果输入的长度或宽度与屏幕截图中的红色标记重叠,则输入的其余部分将转换为省略号点。然后我很确定我现在可以继续我的项目(例如:单击箭头按钮会弹出一个小窗口,显示全文)。

我忘了在那个 UITextField 中添加我的代码:

self.billingAddressTextField = [[UITextField alloc] init];
_billingAddressTextField.frame = CGRectMake(0, 150, scrollView.frame.size.width, 50);
_billingAddressTextField.delegate = self;
_billingAddressTextField.borderStyle = UITextBorderStyleNone;
_billingAddressTextField.background = [UIImage imageNamed:@"textfieldLogIn.png"];
[_billingAddressTextField setTextColor:[UIColor colorWithRed:0.686 green:0.686 blue:0.686 alpha:1.0]];
_billingAddressTextField.backgroundColor = [UIColor clearColor];
_billingAddressTextField.autocapitalizationType = UITextAutocapitalizationTypeWords;
[_billingAddressTextField setFont:[_billingAddressTextField.font fontWithSize:16.0f]];
[_billingAddressTextField setTextAlignment:NSTextAlignmentRight];
[scrollView addSubview:_billingAddressTextField];

【问题讨论】:

【参考方案1】:

好的解决了,我刚刚在 UITextField (billingAddressTextField) 的左侧添加了一个新的 Padding (UIView)。所以现在我的 UITextField 中有两个填充(两侧)。

UIView *paddingViewForArrowButton = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 35, 25)];
_billingAddressTextField.rightView = paddingViewForArrowButton;
_billingAddressTextField.rightViewMode = UITextFieldViewModeAlways;

UIView *paddingforBillingLeft = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 100, 25)];
_billingAddressTextField.leftView = paddingforBillingLeft;
_billingAddressTextField.leftViewMode = UITextFieldViewModeAlways;

【讨论】:

以上是关于UITextField iOS的输入范围宽度的主要内容,如果未能解决你的问题,请参考以下文章

动态更改 UITextField 宽度取决于内容

UITextField - 检测内置 iPhone 键盘上的输入?

日期选择器在文本字段 iOS 8 上崩溃

根据输入的文本调整 UITextField 的大小和位置

UITextField 的宽度永远不会小于占位符文本的宽度

如何在 Swift 中创建 UITextField 对象数组?