今天我试着在我的iPod(iOS 6.1.3)上运行我的代码,我在这里发现了一些有趣的东西...

首先,当我点击textfield时,键盘会显示出来,但当我点击textfield之外的其他地方时,它不会隐藏.

所以我决定用谷歌搜索并找到了这个解决方案:

_fieldEmail.delegate = self;
_fieldEmail.returnKeyType = UIReturnKeyDone;

_fieldPassword.delegate = self;
_fieldPassword.returnKeyType = UIReturnKeyDone;

_fieldRegisterName.delegate = self;
_fieldRegisterName.returnKeyType = UIReturnKeyDone;

_fieldRegisterEmail.delegate = self;
_fieldRegisterEmail.returnKeyType = UIReturnKeyDone;

_fieldRegisterPassword.delegate = self;
_fieldRegisterPassword.returnKeyType = UIReturnKeyDone;

它有效...它在键盘底部提供了一个"完成"按钮,现在按下它可以隐藏键盘.

但我有两个问题:

  1. 键盘仅在点击"完成"按钮时隐藏.而不是点击文本字段外的其他区域.我不知道这在iOS世界是否正常,但通常我看到很多应用程序都不是这样.
  2. 有没有办法循环这个过程,这样我就不必在我所有的文本字段中逐个手动添加该委托?怎么做?

我只需要知道这些

推荐答案

下面的代码将用于所有UITextField个组件的UIView中的所有组件

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
    for (UIView * txt in self.view.subviews){
        if ([txt isKindOfClass:[UITextField class]] && [txt isFirstResponder]) {
            [txt resignFirstResponder];
        }
    }
}

OR

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
    [self.view endEditing:YES];    
}

Objective-c相关问答推荐

日期更改时的 UIDatePicker

iOS - 如何预加载键盘?

将 NSArray 保存到 NSUserDefaults 并在 NSMutableArray 中获取它

如何创建圆形按钮?

来自 NSDate 的日期名称?

在@implementation 而不是@interface 定义的类变量?

如何将 UISlider 垂直放置?

在 Objective-C 中访问命令行参数

将子视图添加到 UIButton

在 iOS 中创建带有 URL 的 UIImage

StoryBoard 助理编辑器停止显示相关文件

如何禁用 UIButton?

Xcode 在 iOS 8 中的 Main() 中引发异常,并带有所有异常断点

HTML 内容适合 UIWebview 而无需缩小

Objective-c 中 SEL 类型的属性

为整个 iPhone / iPad 应用程序设置背景图像

如何在 UITextField 上自动打开键盘?

AVAudioPlayer 不播放任何声音

围绕其中心旋转 UIView 保持其大小

Unwind Segue 在 iOS 8 中不起作用