可以将其定义为用于在界面中显示可编辑文本区域的对象。文本字段用于从用户获取基于文本的输入。
class UITextField : UIControl
正如无涯教程为标签(Label)所讨论的,无涯教程还可以通过提供属性来自定义文本字段。在某些情况下,无涯教程可能还需要配置键盘,例如限制用户仅输入数字。
在这里,无涯教程将使用文本字段和标签创建一个表单。无涯教程还将在文本字段上应用一些验证。如果验证失败,则将向用户显示警报;否则,将向用户显示成功消息。
为了创建项目的界面,无涯教程将使用文本字段从用户那里获取数据,并与用于向用户显示消息的标签相关联。
链接:https://www.learnfk.comhttps://www.learnfk.com/ios/ios-textfield.html
来源:LearnFk无涯教程网
无涯教程不会在应用程序中使用Button,无涯教程使用可点击的标签来触发事件。
在项目中创建了以下视图,以从用户那里获取信息。
在iOS开发中,无涯教程通常会在成功完成任何任务时创建另一个屏幕。但是,在此示例中,无涯教程将在同一屏幕上创建一个包含成功消息的UIView,并将其隐藏,直到在点击的提交标签上成功通过验证为止。
下图显示了添加createUserSuccessView之后的界面。
Outlets是在关联视图控制器类中创建的。所有连接outlets都可以在XCode的连接检查器中显示,如下图所示。
ViewController.swift
import UIKit class ViewController: UIViewController { @IBOutlet weak var createUserSuccessView: UIView! @IBOutlet weak var nameTextField: UITextField! @IBOutlet weak var emailTextField: UITextField! @IBOutlet weak var passwordTextField: UITextField! @IBOutlet weak var mobileTextField: UITextField! @IBOutlet weak var sbmtLbl: UILabel! @IBOutlet weak var messageNameLbl: UILabel! override func viewDidLoad() { super.viewDidLoad() //Do any additional setup after loading the view. setInitViews() sbmtLbl.isUserInteractionEnabled = true let tap = UITapGestureRecognizer(target: self, action: #selector(sbmtBtnTapped(sender:))) sbmtLbl.addGestureRecognizer(tap) } func setInitViews(){ nameTextField.becomeFirstResponder() emailTextField.delegate = self mobileTextField.delegate = self nameTextField.delegate = self passwordTextField.delegate = self } @objc func sbmtBtnTapped(sender: UITapGestureRecognizer){ if(nameTextField.text?.isEmpty ?? false || emailTextField.text?.isEmpty ?? false || passwordTextField.text?.isEmpty ?? false || passwordTextField.text?.isEmpty ?? false){ let alert = UIAlertController(title: nil, message: "Please fill all the details", preferredStyle: .alert) let action = UIAlertAction(title: "OK", style: .default) { (action) in self.dismiss(animated: true, completion: nil) } alert.addAction(action) self.present(alert, animated: true, completion: nil) } else{ messageNameLbl.text = "Hi " + (nameTextField.text ?? "") createUserSuccessView.isHidden = false } } } extension ViewController:UITextFieldDelegate{ func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool { if(textField == mobileTextField){ let currrentCharacterCount = textField.text?.count ?? 0 if range.length + range.location > currrentCharacterCount { return false } let newLength = currrentCharacterCount + string.count - range.length return newLength <= 10 } else{ return true } } }
输出:
通过调用TextField上的beginFirstResponder()方法,TextField可以获取焦点。当文本字段获取焦点后,键盘将自动变为可见状态,并且键盘输入将绑定到文本字段。要关闭键盘,请在TextField上调用resignFirstResponder()方法。为了响应某些特定的交互,无涯教程可能需要关闭键盘。当用户按下返回键时,键盘自动关闭。
SN | Method Signature | Description |
---|---|---|
1 | func textFieldShouldBeginEditing(UITextField) -> Bool | 要求委托编辑是否应从相应的文本字段开始。 |
2 | func textFieldDidBeginEditing(UITextField) | 要求委托编辑是在文本字段中开始的。 |
3 | func textFieldShouldEndEditing(UITextField) -> Bool | 要求委托在文本字段中结束编辑。 |
4 | func textFieldDidEndEditing(UITextField, reason: UITextField.DidEndEditingReason) | 要求委托已经停止了对指定文本字段的编辑。 |
5 | func textFieldDidEndEditing(UITextField) | 与上述相同。 |
6 | func textField(UITextField, shouldChangeCharactersIn: NSRange, replacementString: String) -> Bool | 要求委托是否应更改文本字段的当前内容。 |
7 | func textFieldShouldClear(UITextField) -> Bool | 要求委托是否应删除文本字段的当前内容。 |
sn | 属性 | 描述 | 属性 |
---|---|---|---|
1 | text | 当前文本字段内容。 | text |
2 | color | 文本字段颜色。 | textColor |
3 | font | 文本字段字体。 | font |
4 | alignment | 文本字段对齐。 | textAlignment |
5 | placeholder | 文本字段占位符。 | placeholder |
6 | background | 文本字段背景图像。 | background |
7 | disabled | 禁用文本字段。 | disabledBackground |
8 | border style | 文本字段边框样式。 | borderStyle |
9 | clearn button | 清除按钮是可以由用户删除的叠加视图,以删除文本字段的所有内容。 | clearButtonMode |
10 | Min font size | TextField的最小字体大小。 | minFontSize |
sn | 属性 | 描述 | 属性 |
---|---|---|---|
1 | Capitalization | 将自动大写字母样式应用于文本字段中的键入文本。 | autocapitalizationType |
2 | Correction | 用于确定是否在键入时启用自动校正。 | autocorrectionType |
3 | Spell Checking | 用于确定是否在键入时启用拼写检查。 | spellCheckingType |
4 | Keyboard Type | 设置键入时显示的键盘的类型。 | keyboardType |
5 | Appearance | 用于设置文本字段的样式。 | keyboardAppearance |
6 | Return key | 用于设置要在键盘上显示的返回键的类型。 | returnKeyType |
祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)