概述
- UITextField输入框的基本使用
- iOS中键盘的操作都由UITextField来操作(和Android略有不同)
重点:
- 输入框输输入内容前后回调时机;
- 键盘的控制(键盘显示类型;键盘的显示和隐藏等);
- 输入内容的获取;
示例代码
ViewController.h
#import <UIKit/UIKit.h>
//注意UITextFieldDelegate代理
@interface ViewController : UIViewController <UITextFieldDelegate>
{
//只能是单行的输入框
UITextField *_textField;
}
@property (retain,nonatomic) UITextField* textField;
@end
ViewController.m
#import "ViewController.h"
@interface ViewController ()
@end
@implementation ViewController
@synthesize textField = _textField;
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
self.textField = [[UITextField alloc] init];
//设置大小
self.textField.frame = CGRectMake(100, 100, 200, 40);
//设置字体大小(也可以设置样式)
self.textField.font = [UIFont systemFontOfSize:14];
//边框样式
self.textField.borderStyle = UITextBorderStyleRoundedRect;
//软键盘类型
self.textField.keyboardType = UIKeyboardTypeDefault;
//没有输入时候默认文字,类似Android中hint
self.textField.placeholder = @"please enter password";
//输入框中内容
self.textField.text = @"哈哈哈哈";
//是否要将输入内容展示为*
self.textField.secureTextEntry = NO;
//软键盘右下角按钮的类型。
self.textField.returnKeyType = UIReturnKeySearch;
//将ViewController设置为代理,类似Android中的setOnclickListener
self.textField.delegate = self;
[self.view addSubview:self.textField];
//弹出软键盘
[self.textField becomeFirstResponder];
}
-(void) textFieldDidBeginEditing:(UITextField *)textField{
NSLog(@"输入开始了");
}
-(void) textFieldDidEndEditing:(UITextField *)textField{
NSLog(@"输入结束了,隐藏键盘之后的回调");
//获取输入之后的字符串
NSLog(@"result=%@",textField.text);
}
-(BOOL) textFieldShouldBeginEditing:(UITextField *)textField{
NSLog(@"是否允许输入");
return YES;
}
-(BOOL) textFieldShouldEndEditing:(UITextField *)textField{
NSLog(@"是否可以结束输入,隐藏键盘");
return YES;
}
- (BOOL)textFieldShouldReturn:(UITextField *)textField{
NSLog(@"点击了搜索");
//获取输入之后的字符串
NSLog(@"result=%@",textField.text);
return YES;
}
//点击屏幕中空白处
-(void) touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{
//不再作为第一消息响应者(点击空白处收起软键盘)
[self.textField resignFirstResponder];
}
@end