【发布时间】:2015-04-28 17:15:46
【问题描述】:
我有一个 MainView,它在按下注册按钮时添加一个子视图 (signUpWindow)。
在我的 signUpWindow 子视图 (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
我的问题是我正在尝试配置键盘上的下一步/完成按钮,但不确定要添加 textFieldShouldReturn 功能的哪个视图(MainView 或 SignUpWindowView)。我已经尝试了这两种方法,但甚至无法触发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()
}
【问题讨论】:
-
您将什么设置为文本字段委托?
-
confirmPasswordTextField.delegate=self
标签: ios swift xcode6 subview uitextfielddelegate