Swift - 点击文本框外部后如何关闭数字键盘

13 浏览
0 Comments

Swift - 点击文本框外部后如何关闭数字键盘

当在键盘外面点击时,您如何将键盘从UITextField中解除?我尝试过resignFirstResponder(),但只有在输入一个数字后才退出。我还尝试过textField.inputView = UIView.frame(frame: CGRectZero)。我看到了许多我所问的内容的Obj-C版本,但我需要Swift的等价物,因为我没有Objective-C的编程经验。

谢谢您的时间和耐心。

0
0 Comments

为了在文本框外部点击时关闭数字键盘,可以使用以下方法:

首先,需要设置文本框的代理(delegate)。

接下来,可以使用以下代码来关闭数字键盘:

override func touchesBegan(_ touches: Set, with event: UIEvent?) {

self.view.endEditing(true)

}

以上代码会在触摸屏幕时调用,并关闭数字键盘。

此外,还可以使用另一种方法来关闭数字键盘。可以在文本框的委托方法中添加以下代码:

func textFieldShouldReturn(_ textField: UITextField) -> Bool {

textField.resignFirstResponder()

return true

}

以上代码会在按下回车键时调用,并关闭数字键盘。

以上就是关闭数字键盘的两种方法。可以根据实际需求选择适合的方法来关闭数字键盘,提高用户体验。

0
0 Comments

问题的出现原因是当点击文本框以外的区域时,数字键盘没有自动关闭。解决方法是在视图中添加一个点击手势识别器,并在点击事件中调用`endEditing()`方法来关闭键盘。

在`viewDidLoad`方法中添加以下代码:

let tapRecognizer = UITapGestureRecognizer()

tapRecognizer.addTarget(self, action: "didTapView")

self.view.addGestureRecognizer(tapRecognizer)

然后在视图控制器中添加`didTapView`方法来关闭键盘:

func didTapView(){

self.view.endEditing(true)

}

现在当你在控制器的主视图上点击键盘以外的区域时,会调用`didTapView`方法来关闭键盘。

对于Swift 3.x版本,`viewDidLoad`方法中的代码应该是:

let tapRecognizer = UITapGestureRecognizer()

tapRecognizer.addTarget(self, action: #selector(ViewController.didTapView))

self.view.addGestureRecognizer(tapRecognizer)

其中`ViewController`应该替换成你的视图控制器的名称。

将`didTapView`函数添加到与视图控制器类相同的位置即可。

对于Swift 3版本,需要添加一个选择器,代码如下:

tapRecognizer.addTarget(self, action: #selector(MyViewController.didTapView))

同时也提供了Swift 3语法的示例代码。感谢。

0
0 Comments

这是一篇关于如何在Swift中点击文本框外部时关闭数字键盘的文章。

在Swift中,我们经常需要处理键盘的弹出和关闭。有时候,当我们点击文本框外部时,希望能够关闭键盘。下面是一种解决方法。

首先,我们需要在触摸事件中处理键盘的关闭。我们可以使用`touchesBegan`方法来检测触摸事件,并在其中遍历视图的子视图,找到当前正在编辑的文本框,并关闭键盘。

在Swift 3中,可以使用以下代码实现:

override func touchesBegan(_ touches: Set, with event: UIEvent?) {

for txt in self.view.subviews {

if txt.isKind(of: UITextField.self) && txt.isFirstResponder {

txt.resignFirstResponder()

}

}

}

在Swift 2.3中,可以使用以下代码实现:

override func touchesBegan(touches: Set, withEvent event: UIEvent?) {

for txt in self.view.subviews {

if txt.isKindOfClass(UITextField.self) && txt.isFirstResponder() {

txt.resignFirstResponder()

}

}

}

以上代码会遍历视图的子视图,判断是否为`UITextField`类型,并且当前是否为第一响应者(即正在编辑)。如果是,则调用`resignFirstResponder()`方法关闭键盘。

通过上述方法,我们可以在点击文本框外部时关闭数字键盘。这对于提升用户体验是非常有用的。

希望以上内容对你有所帮助。如果你有任何问题,请随时留言。谢谢!

0