gpt4 book ai didi

swift - UITextField 必须具有最少字符数才能激活 UIButton

转载 作者:搜寻专家 更新时间:2023-11-01 06:55:15 25 4
gpt4 key购买 nike

`我是 Xcode/Swift 的新手,我无法弄清楚如何使 UITextField 在 UIButton 被激活(例如-下一个)之前需要最少的字符数(例如- 7)。

如果用户没有在 UITextField 中输入至少 7 个字符(例如-密码字段),UIButton(例如-“Next”)将保持不活动状态。但是,当用户在 UITextField 中输入 7 个或更多字符时,UIButton 将被激活并正常工作(点击进入下一个屏幕)。

下面是我的 View Controller 代码。有问题的 UITextField 是“passwordField”,UIButton 是“toViewController3”:

import UIKit

class ViewController2: UIViewController, UITextFieldDelegate {

@IBOutlet weak var passwordField: UITextField!

@IBAction func toViewController3(_ sender: Any) {
print("button pressed")
self.performSegue(withIdentifier: "ViewController2ToViewController3Segue", sender: self)
}

@IBAction func backToViewController1(_ sender: Any) {
print("back button pressed")
self.performSegue(withIdentifier: "ViewController2ToViewController1Segue", sender: self)

}

override func viewDidLoad() {
super.viewDidLoad()
print("ViewController2 has loaded")

passwordField.delegate = self
passwordField.becomeFirstResponder()

}

// Hide Keyboard when touch on screen
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
self.view.endEditing(true)
print("Keyboard Hidden by Screen Tap")
}

// Hide keyboard when Return key is pressed
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
passwordField.resignFirstResponder()
print("Keyboard Hidden by Return Key")
return true
}

}

}

最佳答案

将目标用于 .editingChanged

创建在用户键入或从 TextField 中删除字符时调用的操作(控制事件 .editingChanged)。然后根据 TextField 的 text 是否至少有 7 个字符设置按钮的 isEnabled 属性。

...
textField.addTarget(
self,
action: #selector(textFieldChangedValue(_:)),
for: .editingChanged
)
...

@IBAction func textFieldChangedValue(_ sender: UITextField) {
yourButton.isEnabled = sender.text!.count >= 7
}

使用RxSwift

如果您熟悉使用 RxSwift 库,您可以简单地观察 UITextFieldrx.text.orEmpty 控件属性,在 map 您可以验证文本,然后可以将其绑定(bind)到按钮的 rx.isEnabled Binder 。

textField.rx.text.orEmpty
.map { $0.count >= 7 }
.bind(to: yourButton.rx.isEnabled)
.disposed(by: bag)

关于swift - UITextField 必须具有最少字符数才能激活 UIButton,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53903377/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com