如何使用键盘"Go"在Swift 2中像UIButton一样提交UITextFields

Sin*_*Sin 4 xcode ios swift ios8 swift2

好吧,我有一个功能,允许我的用户使用键盘转到下一个字段(我从SO获得代码)它的工作完美.我的问题是,一旦我的用户进入最终文本字段,我选择"GO"作为返回按钮,我想使用go作为理想的提交按钮.当流经表单时,它显然是正确的,但最终的功能不存在.我在这里找到了答案,但看起来它调用与"下一个字段"代码相同的功能.所以他们不能很好地协同工作.所以这是Next Field代码的样子:

override func viewDidLoad() {
    super.viewDidLoad()
    // Keyboard Next Field & Delegate
    enterEmailTextField.delegate = self
    enterPasswordTextField.delegate = self
    self.enterEmailTextField.nextField = self.enterPasswordTextField
    self.enterPasswordTextField.nextField = self.enterNameTextField
    // ...
}
Run Code Online (Sandbox Code Playgroud)

下一个块显示在覆盖下面(我相信你知道) func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() }

// Next Field
func textFieldShouldReturn(textField: UITextField) -> Bool {
    if let nextField = textField.nextField {
        nextField.becomeFirstResponder()
    }

    return true
}
Run Code Online (Sandbox Code Playgroud)

好的,可以正常工作到最后一个文本字段,但是因为最后一个字段是"Go",我试图模仿我会用@IBAction为按钮做什么,而是go按钮.这是我获得Go上班的想法/代码的地方:

ios键盘的"Go"按钮的动作

关于如何实现这些的任何想法?或者也许只是为了使用下一个函数,并实现类似于@IBaction的"键盘去"操作?也许只是一个更好的方法来实现这两个,所以他们彼此重合?任何帮助深表感谢!

编辑!

我忘了实际的NextField.swift文件,我确信它很重要(对不起)

import Foundation
import UIKit

private var kAssociationKeyNextField: UInt8 = 0


extension UITextField {
    @IBOutlet var nextField: UITextField? {
        get {
            return objc_getAssociatedObject(self,     &kAssociationKeyNextField) as? UITextField
        }
         set(newField) {
            objc_setAssociatedObject(self, &kAssociationKeyNextField,     newField, UInt(OBJC_ASSOCIATION_RETAIN))
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

这对我的假设很有帮助

Chr*_*orr 9

- (BOOL)textFieldShouldReturn:(UITextField *)textField
{
    if (textField.returnKeyType == UIReturnKeyNext) {
        // tab forward logic here
        return YES;
    }
    else if (textField.returnKeyType == UIReturnKeyGo) {
        // submit action here
        return YES;
    }

    return NO;
}
Run Code Online (Sandbox Code Playgroud)

在更清晰的方式来处理Tab键顺序和表单提交,请在此处阅读我的答案.


kir*_*vda 5

首先设置文本字段的返回Key Go,然后实现以下方法

func textFieldShouldReturn(textField: UITextField) -> Bool {
      if (textField.returnKeyType==UIReturnKeyType.Go)
         {
            //implemnt yor Ibaction method here
        }
      return true
 }
Run Code Online (Sandbox Code Playgroud)

然后在下面的imgae中查看: 在此处输入图片说明