0.最最简单一句话搞定,不管什么情况下都能隐藏。lazy的话,之后的方法就可以不用看了。
[[[UIApplication sharedApplication] keyWindow] endEditing:YES];
1.点击背景收起键盘的几种方法
1.最简单粗暴的,只要在 任何 UIView子类结束编辑即可:
在一个VIewController收起键盘的方法如下:
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
[self.view endEditing:YES];
}
2.释放编辑框TextField(TextView同理)的第一响应者即可,实现手段很多:
(1) TextField点击Reture收起键盘
步骤:实现委托协议,释放第一响应者
self.textField.delegate=self;
-(BOOL)textFieldShouldReturn:(UITextField *)textField
{
[self.textField resignFirstResponder];
return YES;
}
(2)在ViewController的self.view上添加一个tap单击手势,当点击空白的时候,释放 输入框的第一响应者即可
(3)背景设置一个 UIButton,给button一个回调,当点击按钮的时候释放键盘的第一响应者即可,同上
2.键盘的自定义
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view.
textField = [[UITextField alloc]init];
textField.borderStyle = UITextBorderStyleRoundedRect;
textField.frame = CGRectMake(10, 10, 150, 30);
textField.placeholder = @"input";
textField.delegate = self;
textField.userInteractionEnabled = YES;
// textField.inputView = self.inputView; //inputView属性需手动设置 inputAccessroyView属性由系统调用
[self.view addSubview:textField];
}
//在键盘上附加工具栏
-(UIView *)inputAccessoryView
{
NSLog(@"11");
CGRect accessFrame = CGRectMake(0, 0, 768, 44);
UIToolbar *toolbar = [[UIToolbar alloc]initWithFrame:accessFrame];
UIBarButtonItem *buttonSmile = [[UIBarButtonItem alloc]initWithTitle:@":)" style:UIBarButtonItemStyleBordered target:self action:@selector(sendSmile:)];
UIBarButtonItem *buttonSad = [[UIBarButtonItem alloc]initWithTitle:@":(" style:UIBarButtonItemStyleBordered target:self action:@selector(sendSad:)];
[toolbar setItems:[NSArray arrayWithObjects:buttonSmile,buttonSad, nil]];
return toolbar;
}
//自定义键盘
-(UIView *)inputView
{
NSLog(@"22");
CGRect accessFrame = CGRectMake(0, 0, 768, 44);
UIToolbar *toolbar = [[UIToolbar alloc]initWithFrame:accessFrame];
UIBarButtonItem *buttonSmile = [[UIBarButtonItem alloc]initWithTitle:@":)" style:UIBarButtonItemStyleBordered target:self action:@selector(sendSmile:)];
UIBarButtonItem *buttonSad = [[UIBarButtonItem alloc]initWithTitle:@":(" style:UIBarButtonItemStyleBordered target:self action:@selector(sendSad:)];
[toolbar setItems:[NSArray arrayWithObjects:buttonSmile,buttonSad, nil]];
return toolbar;
}
-(void)sendSmile:(UITextField *)textfield
{
textField.text = [self.textField.text stringByAppendingString:@":)"];
}
-(void)sendSad:(UITextField *)textfield
{
self.textField.text = [self.textField.text stringByAppendingString:@":("];
}