我在屏幕上有两个textFields
和一个Submit button
。用户在第一个textField中输入详细信息,然后在第二个textField中输入详细信息。
我的要求是在单击Submit button
时结束编辑,并在这些textFields
中打印用户输入。我在打印第二个textField的值时遇到了问题,因为当用户单击Submit button
时,编辑似乎永远不会结束。
这是我的代码。感谢你在这个问题上的帮助(我已经添加了文本字段委托)
import UIKit
class ViewController: UIViewController, UITextFieldDelegate {
var firstName = ""
var lastName = ""
@IBOutlet var buttonUI: UIButton!
override func viewDidLoad() {
super.viewDidLoad()
}
@IBAction func Submit(sender: UIButton) {
print(firstName)
print(lastName)
}
func textFieldDidEndEditing(textField: UITextField) {
switch textField.tag {
case 1:
firstName = textField.text!
print(firstName)
case 2:
lastName = textField.text!
print(lastName)
default: break
}
}
}
4条答案
按热度按时间628mspwn1#
在
ViewController
类中,为每个文本字段创建一个@IBOutlet属性,方法是按住Ctrl键并将每个文本字段从情节提要拖到代码中另外,创建一个私有
UITextField
属性来保存(可能)当前(/最近使用的)文本字段。重写
UIViewController
子类的viewDidLoad
方法,以初始化两个“public”文本字段示例的委托此外,使用
UITextFieldDelegate
的两个textFieldShouldReturn(...)
和textFieldDidBeginEditing(...)
方法分别将(活动)文本字段的状态重新指定为第一响应者,并更新currentTextField
引用。最后,如果在编辑过程中按下
submit
,则将任何可能的当前文本字段重新指定为第一响应者这样,您的视图控制器就可以正常工作了。
总结一下:添加和修改上述内容后,您的
ViewController
类应该如下所示yvgpqqbh2#
什么叫
我在打印第二个文本字段的用户输入时遇到问题,因为用户单击“提交”时编辑从未结束。
为什么不在用户按提交时读取文本字段中的值呢?请确保您的插座和代表是正确的。
对你的按钮
Touch up inside
做一个动作,在那个按钮里你会读到值:pzfprimi3#
如果还有人需要的话,可以加
在你的纽扣里在牢房外
并将其添加到表viewCell中
4bbkushb4#
我实施了dfri的建议,很有效!!!
导入UIKit
类视图控制器:UI视图控制器、UI文本字段委托{
}