Pet*_*sen 7 ios resignfirstresponder swift
我很抱歉发布这个,因为已经被问了一百万次,但每当我尝试使用其中一个解决方案时,它要么已经过时,要么无法使用我的代码.(或者我可能只是做错了)
我有5个文本字段和一个textview,进入一个电子邮件,我试图最小化键盘,当我完成,但我不知道如何.我还尝试将它转到下一个文本字段,直到最后一个,但不需要这样做.
我很新btw.所以请特别注意:D
码:
func textView(textView: UITextView, shouldChangeTextInRange: NSRange, replacementText text: String) -> Bool {
if text == "\n" {
text6.resignFirstResponder()
return false
}
return true
}
func textFieldShouldReturn(textField: UITextField) -> Bool {
if textField == self.text1 {
self.text2.becomeFirstResponder()
}
else if textField == self.text2 {
self.text3.becomeFirstResponder()
}
else if textField == self.text3 {
self.text4.becomeFirstResponder()
}
else if textField == self.text4 {
self.text5.becomeFirstResponder()
self.text5.resignFirstResponder();
}
return true;
}
Run Code Online (Sandbox Code Playgroud)
小智 9
首先你必须加入UITextFieldDelegate.h
然后在.m
yourtextfield.delegate = self
Run Code Online (Sandbox Code Playgroud)
然后应用此代码
func textFieldShouldReturn(textField: UITextField!) -> Bool
{
textField.resignFirstResponder()
return true;
}
Run Code Online (Sandbox Code Playgroud)
@Peter Boesen:
完成后最小化键盘.即,当按下"返回"键时......在代码的主要部分进行注释之前,你需要x2的东西......
在您拥有的视图控制器(代码)的顶部class ViewController: UIViewController- 添加UITextFieldDelegate.所以最后看起来应该是这样的:
class ViewController: UIViewController, UITextFieldDelegate
在func viewDidLoadadd
中的相同View Controller(代码)中self.textField.delegate = self
然后......如'Abhinandan Pratap'所述,在按下'Return'时,使用以下代码控制KeyBoard的行为:
func textFieldShouldReturn(textField: UITextField) -> Bool {
textField.resignFirstResponder()
return true
}
Run Code Online (Sandbox Code Playgroud)
但是,如果您想通过点击屏幕上的其他位置来最小化键盘,使用"TouchesBegan"(如果您没有使用滚动视图),以下内容就足够了
override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
self.view.endEditing(true)
}
Run Code Online (Sandbox Code Playgroud)
如果您使用scrollView作为屏幕,则需要self.view.endEditing(true)结合使用UITapGesture以在外面敲击键盘.
| 归档时间: |
|
| 查看次数: |
6642 次 |
| 最近记录: |