如何更改Swift中键盘上的Textfield文本Done按钮?

时间:2018-01-04 10:49:40

标签: swift3 uitextfield

大家好,我知道它非常简单的问题,但我也没有在谷歌上找到。

在我的情况下,我在文本字段中设置一些默认文本,我想要的是如果用户想要给它不同的名称,那么这个新名称应该是服务器,否则是默认文本。

基本上我想要的是当用户按下键盘的完成按钮时应该重命名功能,但我不知道如何做到这一点请帮忙。

@IBAction func textFieldEditingDidChange(sender: AnyObject) {
       println("textField: \(textField.text)")
}

1 个答案:

答案 0 :(得分:0)

您是否有其他用户将要完成的textFields,或者这是唯一的字段?如果还有其他字段需要填写,只需添加"提交"带有动作的按钮,并将您的功能绑定在一起,将所有textField推送到您的服务器。

如果您只有一个电子邮件地址字段,则可以使用其他解决方案。

您已在此处@IBAction func textFieldEditingDidChange(sender: AnyObject) {采取行动,您最有可能想要做的是在文本字段上实施委托方法。这样,当textField改变时,你的函数将被调用。只需将默认文本放在界面构建器属性检查器窗格的占位符中,或将其添加到视图中,并使用代码加载。 textfield.text = "default text"。在任何情况下,除非用户编辑textField,否则该函数不会触发。如果用户没有编辑字段,您可能希望添加另一种方法来提取此数据,您可以使用segue或通过调用viewWillDisappear().

将推送到服务器功能。

切换到委托方法有几个步骤。 This link has a good example of what is needed

首先,您需要将UITextFieldDelegate添加到类

class ViewController: UIViewController, UITextFieldDelegate {

然后在viewDidLoad()中添加一个委托到您的文本字段并设置默认文本。

override func viewDidLoad() {
    textfield.delegate = self
    textfield.text = "default text"
}

现在添加你的委托方法。

func textFieldDidEndEditing(_ textField: UITextField) {
     print("textField: \(textfield.text!)")
}

最重要的是,将您的操作更改为插座,并确保在连接检查器中删除发送事件。

@IBOutlet weak var textfield: UITextField!