首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >当键盘出现时,如何使键盘以外的其他接口不可用?

当键盘出现时,如何使键盘以外的其他接口不可用?
EN

Stack Overflow用户
提问于 2014-07-02 13:33:49
回答 1查看 47关注 0票数 2

我学会了在单击return键时,或者当用户触摸文本字段之外时如何关闭键盘。

一种方法是委托一个类来管理文本字段并编写代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
- (BOOL) textFieldShouldReturn:(UITextField *)textField {
    [textField resignFirstResponder];
    return YES; //I'm not sure whether I choose YES or NO
}

另一种方式类似如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
    UITouch *touch = [touches anyObject];
    if (touchToDismissKeyboard.phase == UITouchPhaseBegan) {
    [self.firstTextField resignFirstResponder];
    }
}

然而,使用上面的任何一种方法,我发现其他界面都是“启用”的,例如分段控件或开关,它们与文本字段位于同一视图中。此外,当单击这些已启用的接口时,键盘仍显示在屏幕上。

然后,我的问题是,当键盘出现时,我如何使其他接口不可用("enabled = NO"),以及如何在不更改其他接口的值的情况下,在键盘或文本字段之外的任何位置取消触摸键盘。

EN

回答 1

Stack Overflow用户

发布于 2014-07-02 13:54:15

使用点击手势识别器

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
UITapGestureRecognizer *tapRecognize = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(dissmissKeyBoard)];
tapRecognize.delegate = self;
tapRecognize.numberOfTapsRequired = 1;
[self.viewB addGestureRecognizer:tapRecognize];

然后实现dissmissKeyBoard方法。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
- (void)dissmissKeyBoard
{
    [yourTextField resignFirstResponder];
}

希望这能对你有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24532544

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文