gpt4 book ai didi

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

转载 作者:搜寻专家 更新时间:2023-10-31 08:12:01 25 4
gpt4 key购买 nike

好的,所以我有一个功能,允许我的用户使用键盘转到下一个字段(我从 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com