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

标签 ios xcode 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
    // ...
}

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

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

    return true
}

好的,直到最后一个文本字段都可以正常工作,但是由于最后一个字段是“Go”,我试图模仿我会为按钮说一个@IBAction,而不是go按钮。这是我得到 Go to work 的想法/代码的地方:

Action of the "Go" button of the ios keyboard

关于如何实现这些的任何想法?或者可能只是为了使用下一个功能,并实现类似于 @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))
        }
    }
}

我想这会有很大帮助

最佳答案

- (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;
}

关于处理 Tab 键顺序和表单提交的更简洁的方法,请阅读我的回答 here .

关于ios - 如何使用键盘 "Go"像 Swift 2 中的 UIButton 一样提交 UITextFields,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31157847/

相关文章:

ios - 带有 Storyboard的 Swift PNChart PNCircleChart

android - flutter cloud-firestore MissingPluginException 异常

ios - Paytm sdk ios 集成在 swift 中

android - express 端口 3000,react native 端口 8081,如何发出 get 请求

ios - 从 Swift 中的两个 imageView 获取图像

iOS Swift - CoreBluetooth 无法发送数据

iphone - 如何使用 facebook ios sdk 发出好友请求?

c++ - NSString* 到 char*?

ios - 在 iOS 上发布本地通知时可以执行代码吗?

string - 是否有等效于使用 Swift 格式的字符串函数 String(format : . ..)