当一个注册按钮被按下时,我有一个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) }
我成功地让键盘在MainVIEw中出现并消失时上下移动signUpWindow.好极了 :)
SignUpWindowVIEw实现了UITextFIEldDelegate
我的问题是我正在键盘上配置下一个/完成按钮,我不知道要添加textFIEldShouldReturn函数的主视图(MainVIEw或SignUpWindowVIEw).我已经尝试过这两个,但是甚至不能得到一个println来测试,以查看该函数是否被执行.一旦我得到textFIEldShouldReturn启动,我有信心我可以执行必要的代码,以获得下一个/完成按钮来做我想要的,并将发布最后的解决方案包括下一个/完成功能.
UPDATED包含一个缩写版本的SignUpWindowVIEw.swift
import UIKitclass 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,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的委托.然后实现方法textFIEldShouldReturn:像这样:
func textFIEldShouldReturn(textFIEld: UITextFIEld) -> Bool { textFIEld.resignFirstResponder() if textFIEld == someTextFIEld { // Switch focus to other text fIEld otherTextFIEld.becomeFirstResponder() } return true}
在你的例子中,你错过了这一行:
confirmPasswordTextFIEld.delegate = self
如果你已经执行了委托.
总结以上是内存溢出为你收集整理的ios – 下一个/完成按钮使用Swift with textFieldShouldReturn全部内容,希望文章能够帮你解决ios – 下一个/完成按钮使用Swift with textFieldShouldReturn所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)