如何使用 iPhone/iOS 键盘上的“下一步”按钮浏览所有文本字段?
要逐个遍历所有文本字段(点击完成或返回按钮时),我们需要创建一个逻辑。借助一个项目来理解一下它。
创建项目并在视图控制器情节提要板上拖动四个文本字段。
逐个选择它们,并从属性检查器中将它们标记为 1、2、3、4。
还从属性检查器中将它们的返回键设置为“完成”。
在视图控制器类中为所有四个文本字段创建出口,将它们连接到各自的出口。
@IBOutlet weak var tf1: UITextField! @IBOutlet weak var tf2: UITextField! @IBOutlet weak var tf3: UITextField! @IBOutlet weak var tf4: UITextField!
将 ViewController 类扩展到 UITextFieldDelegate,并编写方法 textFieldShouldReturn
extension ViewController: UITextFieldDelegate {
func textFieldShouldReturn(_ textField: UITextField) -> Bool { }
}在 ViewController 类的 viewDidLoad() 方法中,逐个为其设置委托为自己。
override func viewDidLoad() {
super.viewDidLoad()
self.tf1.delegate = self
self.tf2.delegate = self
self.tf3.delegate = self
self.tf4.delegate = self
}现在,在上面编写的代码中,添加以下代码行
let nextTag = textField.tag + 1
let nextTF = textField.superview?.viewWithTag(nextTag) as UIResponder!
if nextTF != nil {
nextTF?.becomeFirstResponder()
} else {
textField.resignFirstResponder()
}
return false完整的 ViewController 类现在应如下所示
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var tf1: UITextField!
@IBOutlet weak var tf2: UITextField!
@IBOutlet weak var tf3: UITextField!
@IBOutlet weak var tf4: UITextField!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
self.tf1.delegate = self
self.tf2.delegate = self
self.tf3.delegate = self
self.tf4.delegate = self
}
}
extension ViewController: UITextFieldDelegate {
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
let nextTag = textField.tag + 1
let nextTF = textField.superview?.viewWithTag(nextTag) as UIResponder!
if nextTF != nil {
nextTF?.becomeFirstResponder()
} else {
textField.resignFirstResponder()
}
return false
}
}该应用程序在 xcode 和模拟器中的样子分别如下


广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP