gpt4 book ai didi

ios - 使用带有 textFieldShouldReturn 的 Swift 的下一步/完成按钮

转载 作者:IT王子 更新时间:2023-10-29 05:07:17 25 4
gpt4 key购买 nike

我有一个 MainView,它在按下注册按钮时添加一个 subview (signUpWindow)。

在我的 signUpWindow subview (SignUpWindowView.swift) 中,我为每个字段设置了一个函数,例如:

func confirmPasswordText()
{
confirmPasswordTextField.frame=CGRectMake(50, 210, 410, 50)
confirmPasswordTextField.placeholder=("Confirm Password")
confirmPasswordTextField.textColor=textFieldFontColor
confirmPasswordTextField.secureTextEntry=true
confirmPasswordTextField.returnKeyType = .Next
confirmPasswordTextField.clearButtonMode = .WhileEditing
confirmPasswordTextField.tag=5
self.addSubview(confirmPasswordTextField)
}

当 signUpWindow 在 MainView 中出现和消失时,我让键盘上下移动它。

SignUpWindowView 实现了 UITextFieldDelegate

我的问题是我正在尝试配置键盘上的“下一步/完成”按钮,但不确定要在哪个 View (MainViewSignUpWindowView)中添加 textFieldShouldReturn 函数。我都试过了,但甚至无法触发 println 来测试函数是否正在执行。一旦我触发了 textFieldShouldReturn,我相信我可以执行必要的代码来让 Next/Done 按钮执行我想要的操作,并将发布包含 Next/Done 函数的最终解决方案.

已更新以包含 SignUpWindowView.swift 的缩写版本

import UIKit

class SignUpWindowView: UIView,UITextFieldDelegate {

let firstNameTextField:UITextField=UITextField()
let lastNameTextField:UITextField=UITextField()

override func drawRect(rect: CGRect){
func firstNameText(){
firstNameTextField.delegate=self
firstNameTextField.frame=CGRectMake(50, 25, 200, 50)
firstNameTextField.placeholder="First Name"
firstNameTextField.returnKeyType = .Next
self.addSubview(firstNameTextField)
}

func lastNameText(){
lastNameTextField.delegate=self
lastNameTextField.frame=CGRectMake(260, 25, 200, 50)
lastNameTextField.placeholder="Last Name"
lastNameTextField.returnKeyType = .Done
self.addSubview(lastNameTextField)
}

func textFieldShouldReturn(textField: UITextField!) -> Bool{
println("next button should work")
if (textField === firstNameTextField)
{
firstNameTextField.resignFirstResponder()
lastNameTextField.becomeFirstResponder()
}
return true
}

firstNameText()
lastNameText()
}

最佳答案

您需要在您的类中实现 UITextFieldDelegate 并将该对象设置为 UITextField 的委托(delegate)。然后像这样实现方法 textFieldShouldReturn::

func textFieldShouldReturn(textField: UITextField) -> Bool {
textField.resignFirstResponder()
if textField == someTextField { // Switch focus to other text field
otherTextField.becomeFirstResponder()
}
return true
}

在您的示例中,您缺少这一行:

confirmPasswordTextField.delegate = self

如果您当然已经实现了委托(delegate)。

关于ios - 使用带有 textFieldShouldReturn 的 Swift 的下一步/完成按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29925851/

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