问题663830,Isaac询问如何向文本字段添加按钮。有人可以显示代码来为.rightView属性添加标签吗?
或者,是否有更好的方法在文本字段中包含“永久”文本?
这适用于包含字段单位(mg,kg等)的计算器,无需在文本字段外维护标签。有点像永久占位符文本?
谢谢, 克里斯
答案 0 :(得分:10)
快速而肮脏的代码:
- (void)viewDidLoad {
[super viewDidLoad];
UITextField *textField = [[UITextField alloc] initWithFrame:CGRectMake(100, 100, 100, 40)];
textField.borderStyle = UITextBorderStyleLine;
UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 40, 40)];
label.text = @"mg";
label.backgroundColor = [UIColor colorWithWhite:0.0 alpha:0.0];
textField.rightViewMode = UITextFieldViewModeAlways;
textField.rightView = label;
[self.view addSubview:textField];
[label release];
[textField release];
}
请注意,我正在从ViewController添加子视图,您也可以从视图中进行。
答案 1 :(得分:3)
UITextField上的leftView(或rightView)属性就是这个上的钱。很容易在文本字段中制作“永久”文本。
- (void)loadView
{
UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 40, 40)];
label.text = @"To:";
label.backgroundColor = [UIColor colorWithWhite:0.0 alpha:0.0];
self.UITextField.leftViewMode = UITextFieldViewModeAlways;
self.UITextField.leftView = label;
}
答案 2 :(得分:2)
我知道我可能会晚一点,但我相信这可以帮助未来的程序员面对同样的情况。
您可能想要创建一个类别,以便更容易在多个应用程序中使用,如下所示:
<强>的UITextField + PaddingLabel.h 强>
#import <UIKit/UIKit.h>
@interface UITextField (PaddingLabel)
-(void) setLeftPaddingText:(NSString*) paddingValue width:(CGFloat) width;
-(void) setRightPaddingText:(NSString*) paddingValue width:(CGFloat) width;
@end
<强>的UITextField + PaddingLabel.m 强>
#import "UITextField+PaddingLabel.h"
@implementation UITextField (PaddingLabel)
-(void) setLeftPaddingText:(NSString*) paddingValue width:(CGFloat) width
{
UILabel *paddingLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, width, self.frame.size.height)];
paddingLabel.text = paddingValue;
self.leftView = paddingLabel;
self.leftViewMode = UITextFieldViewModeAlways;
}
-(void) setRightPaddingText:(NSString*) paddingValue width:(CGFloat) width
{
UILabel *paddingLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, width, self.frame.size.height)];
paddingLabel.text = paddingValue;
self.rightView = paddingLabel;
self.rightViewMode = UITextFieldViewModeAlways;
}
@end
用法示例:
[self.dateTextField setLeftPaddingText:@"DATE:" width:defaultWidth];