iphone - 隐藏键盘的实用方法

标签 iphone objective-c ios keyboard

在我的项目中,我有几个包含许多 UITextField 的页面。所以我认为最好创建一个名为 hideKeyboard 的实用方法,它在任何情况下都可以使用。 这是我的解决方案,但实际上这段代码中有些地方感觉不对。 对此有更好的解决方案吗?

+(void) hideKeyBoard {
    UITextField* t = [[UITextField alloc] initWithFrame:CGRectNull];
    [[UIApplication sharedApplication].keyWindow addSubview:t];
    [t becomeFirstResponder];
    [t resignFirstResponder];
    [t removeFromSuperview];
}

最佳答案

一个非常简单的解决方案是使用响应链,如前所述 here

[[UIApplication sharedApplication] sendAction:@selector(resignFirstResponder) 
                                           to:nil 
                                         from:nil
                                     forEvent:nil];

通过将操作发送到 nil,它会被发送到响应链中,当然第一个有机会响应的对象是 firstResponder

旁注 我看到这篇文章的唯一原因是因为每周时事通讯iOSDevWeekly , 这绝对值得订阅

编辑

我猜想用蛮力的方式来做这件事

[[[UIApplication sharedApplication] keyWindow] endEditing:YES];

关于iphone - 隐藏键盘的实用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11879745/

相关文章:

ios - 我应该如何理解 Xcode for iOS 应用程序中的 "Save for Development Deployment"?

iphone - 以编程方式设置用户位置的坐标 Xcode/Objective-C

iphone - iPhone 应用程序中 View Controller 必须始终有委托(delegate)吗?

ios - perfrmSegueWithIdentifier() 在 swift iOS 中不起作用

objective-c - 超过 5 个 UIImage 时出现 Xcode 错误

iphone - 我们如何创建一个干净的 iOS 项目(没有 Interface Builder 文件)?

iphone - 如何创建 3 组件 UIPickerView(模板任何人???)iPhone

ios - 解析提要,将其保存在本地的最佳方式是什么?

ios - 在 Objective C 中缩小类型 UIView

ios - 方法无效 - 自定义单元格