iOS - 触摸 UITextField 外部时关闭键盘

标签 ios cocoa-touch uitextfield uikit

我想知道如何在用户触摸 UITextField 之外时让键盘消失。

最佳答案

您需要添加一个 UITapGestureRecogniser 并将其分配给 View ,然后在其选择器上的 UITextField 上调用 resign first responder。

代码:

在viewDidLoad中

UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(dismissKeyboard)];

[self.view addGestureRecognizer:tap];

在 dismissKeyboard 中:

-(void)dismissKeyboard 
{
    [aTextField resignFirstResponder];
}

(其中 aTextField 是负责键盘的文本字段)

Swift 3 版本看起来像那样

let tapGesture = UITapGestureRecognizer(target: self, action: #selector(self.dismissKeyboard (_:)))
self.view.addGestureRecognizer(tapGesture)

对于 dismissKeyboard

@objc func dismissKeyboard (_ sender: UITapGestureRecognizer) {
    aTextField.resignFirstResponder()
}

关于iOS - 触摸 UITextField 外部时关闭键盘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5306240/

相关文章:

ios - 保存 Int Array CoreData Swift 3 的最干净方法

iOS - 如果以模态方式呈现 View Controller ,则强制设备方向

objective-c - 奇怪的委托(delegate)协议(protocol)声明错误?

php - 如何在 PHP 中使用 fcm(firebase 控制台)向 iphone 发送推送通知?

ios - 以编程方式更改 ECSlidingViewController 中的 View

ios - UITextField secureEntry 不遵守 clearsOnBeginEditing 属性

ios - 正确检测键盘的出现和消失

ios - TableViewController 中各部分上方的 Xcode 文本字段

iphone - View 和 View Controller

ios - 适用于 iOS 的 Drum Sim 构建示例