1.UITextField初始化
UITextField *userNameTextField = [[UITextFieldalloc] initWithFrame:CGRectMake
(100, 100, 190, 30)];
userNameTextField.borderStyle =UITextBorderStyleRoundedRect;
userNameTextField.placeholder = @"手机号/邮箱"; [containerView addSubview:userNameTextField];
[userNameTextField release];
2.UITextField属性
2.1文本属性
text :要显示的文本内容
textColor:文本内容的颜色
textAlignment:文本的对齐方式水平方式 textField.textAlignment = NSTextAlignmentLeft
font: 文本字体 textField.font = [UIFont fontWithName:@“Helvetica-Bold” size:20];
placeHolder:占位符无文字输入时的提示语 textField.placeholder = @“请输入用户名”
2.2外观控制
borderStyle:边框样式枚举值 textField.borderStyle = UITextBorderStyleLine
clearButtonMode:清除按钮(右侧) textField.clearButtonMode =UITextFieldViewModeAlways; //总是 显示清除按钮(小叉叉按钮)
leftView:输入框左视图(UIView类型) textField.leftView = leftView;
leftViewMode:左视图显示的mo'shi textField.leftViewMode = UITextFieldViewModeAlways
类似的还有右视图:rightView
2.3输入控制
enabled:BOOL值是否允许输入 textField.enabled = NO,默认为YES,可输入
clearsOnBeginEditing:是否开始输入时清空输入框 textField.clearsOnBeginEditing = YES;
secureTextEntry:是否文字以圆点格式现实用于密码框 textField.secureTextEntry = YES;
keyboardType:键盘弹出类型枚举值 textField.keyboardType = UIKeyboardNmuberPad;数字键盘 returnKeyType:键盘右下角return按钮类型 textField.returnKeyType = UIReturnKeyNext改为下一行
inputView:自定义输入视图:UIView类型默认是键盘 textField.inputView = myInputView;
inputAccessoryView输入视图上方的辅助视图 textField. inputAccessoryView = myAccessoryView;
3.UITextField键盘回收方法
3.1 点击键盘return按钮实现键盘回收的步骤:
1、AppDelegate.h文件接受UITextFieldDelegate协议
2、将AppDelegate作为UITextField的delegate
3、AppDelegate.m文件实现 textFieldShouldReturn:方法
示例
(1)AppDelegate.h
@interface AppDelegate : UIResponder <UIApplicationDelegate,UITextFieldDelegate>
(2)AppDelegate.m
textField.delegate = self;(self为AppDelegate,词句很关键)
(3)AppDelegate.m
- (BOOL)textFieldShouldReturn:(UITextField *)textField
{
[textField resignFirstResponder];
return YES;
}
3.2点击return跳到下一行(确定,搜索等)
4.**自定义视图控件(重点) ** (工程见附件)
自定义UILabel 与UITextField整合控件LTView
LTView.h文件:
@interface LTView : UIView { UILabel *_label; //左边的label UITextField *_textField; //右边的textField } @property (nonatomic, assign) id <UITextFieldDelegate> delegate; @property (nonatomic, assign) CGFloat spacing; @property (nonatomic, retain) UILabel *label; @property (nonatomic, retain) UITextField *textField; /** * 指定初始化方法 * * @param frame 整个控件的frame * @param labelText 左边label的文字 * @param text 右边输入框的文字 * @param placeHolder 右边输入框的占位符 * * @return 返回一个LTView对象 */ - (id)initWithFrame:(CGRect)frame labelText:(NSString *)labelText text:(NSString *)text placeHolder:(NSString *)placeHolder; - (id)initWithFrame:(CGRect)frame labelText:(NSString *)labelText placeHolder:(NSString *)placeHolder; //设置_label的文字 - (void)setLabelText:(NSString *)text; //获取_label的文字 - (NSString *)labelText; //设置_textField文字 - (void)setText:(NSString *)text; //或者去_textField文字 - (NSString *)text; @end
LTView.m文件:
#import "LTView.h" @implementation LTView @synthesize spacing = _spacing; @synthesize delegate = _delegate; - (void)dealloc { [_label release]; [_textField release]; [super dealloc]; } - (void)setDelegate:(id<UITextFieldDelegate>)delegate { _delegate = delegate; _textField.delegate = _delegate; } - (id <UITextFieldDelegate>)delegate { return _delegate; } - (id)initWithFrame:(CGRect)frame labelText:(NSString *)labelText text:(NSString *)text placeHolder:(NSString *)placeHolder { self = [super initWithFrame:frame]; if (self) { //整个控件的宽高。 CGFloat width = frame.size.width; CGFloat height = frame.size.height; _label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, width/3, height)]; _label.backgroundColor = [UIColor clearColor]; _label.textAlignment = NSTextAlignmentRight; [self addSubview:_label]; [_label release]; _textField = [[UITextField alloc] initWithFrame:CGRectMake(width/3 + _spacing, 0, width-width/3-_spacing, height)]; _textField.borderStyle = UITextBorderStyleRoundedRect; [self addSubview:_textField]; [_textField release]; [self setLabelText:labelText]; [self setText:text]; _textField.placeholder =placeHolder; } return self; } - (id)initWithFrame:(CGRect)frame labelText:(NSString *)labelText placeHolder:(NSString *)placeHolder { return [self initWithFrame:frame labelText:labelText text:nil placeHolder:placeHolder]; } - (id)initWithFrame:(CGRect)frame { return [self initWithFrame:frame labelText:nil text:nil placeHolder:nil]; } - (void)setSpacing:(CGFloat)spacing { _spacing = spacing; _textField.frame = CGRectMake(_label.frame.size.width + _spacing, 0, self.frame.size.width - _label.frame.size.width - _spacing, self.frame.size.height); } - (CGFloat)spacing { return _spacing; } //设置_label的文字 - (void)setLabelText:(NSString *)text { _label.text = text; } //获取_label的文字 - (NSString *)labelText { return _label.text; } //设置_textField文字 - (void)setText:(NSString *)text { _textField.text = text; } //或者去_textField文字 - (NSString *)text { return _textField.text; }
AppDelegate.m文件
#import "AppDelegate.h" #import "LTView.h" @implementation AppDelegate - (void)dealloc { [_window release]; [super dealloc]; } //键盘回收 - (BOOL)textFieldShouldReturn:(UITextField *)textField { [textField resignFirstResponder]; return YES; } - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease]; // Override point for customization after application launch. self.window.backgroundColor = [UIColor whiteColor]; CGFloat y = 50; NSArray *labelTitles = @[@"用户名:",@"密码:",@"确认密码:",@"邮箱:",@"手机号:"]; NSArray *placeHolders = @[@"数字、字母",@"6位数字",@"6位数字",@"Email",@"11位"]; for (int i = 0; i < 5; i++) { LTView *ltView = [[LTView alloc] initWithFrame:CGRectMake(0, y, 320, 30) labelText:[labelTitles objectAtIndex:i] placeHolder:[placeHolders objectAtIndex:i]]; ltView.delegate = self; [self.window addSubview:ltView]; y += 50; [ltView release]; } [self.window makeKeyAndVisible]; return YES; }
enabled