关闭

UITextField的键盘的回收

标签: uitextfielduiview
39人阅读 评论(0) 收藏 举报
分类:

UITextField的键盘的回收是取消UITextField的响应状态。
1、添加辅助视图
2、实现UITextField的代理方法
添加辅助视图:

// 创建辅助视图
UIView *recoverKeyBoardView = [[UIView alloc]initWithFrame:CGRectMake(0, 0,CGRectGetWidth(self.window.frame) , 15)];
// 为辅助视图添加回收键盘的按钮
UIButton *recoverKeyBoardBtn = [UIButton buttonWithType:UIButtonTypeSystem];
// 为回收键盘按钮设置位置大小
[recoverKeyBoardBtn setFrame:CGRectMake(150, 0, 100, 10)];
// 为回收键盘按钮添加title
[recoverKeyBoardBtn setTitle:@"回收键盘" forState:UIControlStateNormal];
// 为添加辅助视图按钮添加点击事件
[recoverKeyBoardBtn addTarget:self action:@selector(recoverKeyBoard) forControlEvents:UIControlEventTouchUpInside];
// 将添加辅助视图按钮添加到辅助视图上
[recoverKeyBoardView addSubview:recoverKeyBoardBtn];


// 创建文本输入框,并设置位置大小
UITextField *textField = [[UITextField          alloc]initWithFrame:CGRectMake(150, 55, 110, 20)];
// 设置文本框的边框样式
textField.borderStyle = UITextBorderStyleRoundedRect;
// 设置占位字符串
textField.placeholder = @"需要输入的提示文字";
// 为文本框设置tag值
textField.tag = 1001;
// 为textField添加辅助视图
textField.inputAccessoryView = recoverKeyBoardView;

// 回收键盘方法
- (void)recoverKeyBoard{
    // 根据tag值取出对应textField
    UITextField *textField = (UITextField *)[self.window viewWithTag:1002];
    // 将textField响应状态取消
    [textField resignFirstResponder];
}

实现UITextField的代理方法

// 加入UITextFieldDelegate协议
@interface AppDelegate ()<UITextFieldDelegate>

// 创建文本输入框,并设置位置大小
UITextField *textField = [[UITextField          alloc]initWithFrame:CGRectMake(150, 55, 110, 20)];
// 设置文本框的边框样式
textField.borderStyle = UITextBorderStyleRoundedRect;
// 设置占位字符串
textField.placeholder = @"需要输入的提示文字";
// 将UITextFieldDelegate协议委托给本身
textField.delegate = self;

// 点击键盘的return按钮时候调用
- (BOOL)textFieldShouldReturn:(UITextField *)textField
{
    // 将文本框的响应状态取消
    [textField resignFirstResponder]; 
    return YES;
}

这两种方法都可以实现键盘的收回。
经过这两天学习,我发现了一种点击屏幕空白地方回收键盘的方法:
首先创建一个轻拍手势并添加到本视图上

UITapGestureRecognizer *tapGR = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(tapAction:)];
[self addGestureRecognizer:tapGR];

创建一个方法取消这个视图上的第一响应者状态

- (void)tapAction:(UITapGestureRecognizer *)sender{
    UIView *view = sender.view;
    [view endEditing:YES];
}
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:218次
    • 积分:41
    • 等级:
    • 排名:千里之外
    • 原创:4篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章分类
    文章存档