Swift UITextFieldShouldReturn返回键点击

kmi*_*las 44 xcode uitextfield ios swift

(iOS8,Xcode6,Swift)使用Swift,如何在"返回"按钮上轻击?

以下链接中的doc指定使用该textFieldShouldReturn方法:

// Swift
@optional func textFieldShouldReturn(_ textField: UITextField!) -> Bool
Run Code Online (Sandbox Code Playgroud)

我挂断的地方是"_ textField"部分.我使用Storyboard创建了文本字段.如何捕获此特定文本字段的通知?我是否需要创建一个新类并将其设置为此文本字段的委托?我是否为文件分配了一个名称,然后以某种方式挂钩了它?

https://developer.apple.com/documentation/uikit/uitextfielddelegate/1619603-textfieldshouldreturn

jay*_*iya 87

class ViewController: UIViewController,UITextFieldDelegate //set delegate to class

@IBOutlet var txtValue: UITextField //create a textfile variable

override func viewDidLoad() {
   super.viewDidLoad() 
   txtValue.delegate = self //set delegate to textfile 
}

func textFieldShouldReturn(_ textField: UITextField) -> Bool {   //delegate method
   textField.resignFirstResponder()
   return true
}
Run Code Online (Sandbox Code Playgroud)

  • 请不要将同样格式错误的答案发布到多个问题上.如果他们可以用同样的东西回答,那么它们就是重复的,应该被标记/关闭. (7认同)

sij*_*nes 22

实现此功能

func textFieldShouldReturn(_ textField: UITextField) -> Bool {   //delegate method
   textField.resignFirstResponder()
   return true
}
Run Code Online (Sandbox Code Playgroud)

对于委托,您可以使用Utilities窗格/ Connections Inspector/delegate进行设置,然后拖动到ViewController(故事板中的黄色按钮)

然后,您不需要以编程方式为每个文本字段设置委托


iOS*_*iOS 5

在 Swift 4.2 和 Xcode 10.1 中

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

    if textField == TF1 {
        textField.resignFirstResponder()//
        TF2.becomeFirstResponder()//TF2 will respond immediately after TF1 resign.
    } else if textField == TF2  {
        textField.resignFirstResponder()
        TF3.becomeFirstResponder()//TF3 will respond first
    } else if textField == TF3 {
        textField.resignFirstResponder()
    }
    return true
}
Run Code Online (Sandbox Code Playgroud)


Ben*_*ieb 3

您需要设置一个对象作为文本字段的委托。通常这将是文本字段所在的视图控制器。您不需要从任何其他类继承,或者严格来说,实现委托(但您可以实现 UITextFieldDelegate 以使事情更清晰一些。)