If else 语句取决于文本字段 (swif3)
If else statement depending on textfield (swif3)
我希望我的代码仅当且仅当文本文件中有文本时才显示标签,如果没有文本,则应隐藏标签。而已。我下面的代码没有执行我上面描述的内容。
import UIKit
class ViewController: UIViewController {
@IBOutlet var label: UILabel!
@IBOutlet var txtfield: UITextField!
override func viewDidLoad() {
super.viewDidLoad()
appear()
}
func appear() {
if (txtfield.text?.isEmpty)! {
label.isHidden = true
}
else {
label.isHidden = false
}}}
您的代码将无法运行,因为检查仅在加载视图控制器时执行一次。
您需要做的是 运行 每次用户完成编辑文本字段时的 appear() 函数。
所以只需将文本视图的委托设置到这个视图控制器并实现这个功能:
optional func textViewDidEndEditing(_ textView: UITextView)
https://developer.apple.com/documentation/uikit/uitextviewdelegate/1618628-textviewdidendediting
然后调用里面的appear()就可以了
编辑:文本字段版本
optional func textFieldDidEndEditing(_ textField: UITextField)
https://developer.apple.com/documentation/uikit/uitextfielddelegate/1619591-textfielddidendediting
使用下面的代码。
override func viewWillAppear(_ animated: Bool)
{
textChanged(txtField)
}
func textChanged(_ textField: UITextField) {
if textField.text == ""
{
textField.isHidden = true
}
else
{
textField.isHidden = false
}
print("Hello")
}
override func viewDidLoad()
{
super.viewDidLoad()
txtField.addTarget(self, action: #selector(textChanged(_:)),for: .allEvents)
}
func textChanged
将隐藏你的 textField
如果它是空的。
- 将其添加到
viewWillAppear
将在屏幕出现时检查 textField
。
- 在
viewDidLoad
中,每个事件的目标 (textChanged
) 添加到 textField
。
我希望我的代码仅当且仅当文本文件中有文本时才显示标签,如果没有文本,则应隐藏标签。而已。我下面的代码没有执行我上面描述的内容。
import UIKit
class ViewController: UIViewController {
@IBOutlet var label: UILabel!
@IBOutlet var txtfield: UITextField!
override func viewDidLoad() {
super.viewDidLoad()
appear()
}
func appear() {
if (txtfield.text?.isEmpty)! {
label.isHidden = true
}
else {
label.isHidden = false
}}}
您的代码将无法运行,因为检查仅在加载视图控制器时执行一次。
您需要做的是 运行 每次用户完成编辑文本字段时的 appear() 函数。
所以只需将文本视图的委托设置到这个视图控制器并实现这个功能:
optional func textViewDidEndEditing(_ textView: UITextView)
https://developer.apple.com/documentation/uikit/uitextviewdelegate/1618628-textviewdidendediting
然后调用里面的appear()就可以了
编辑:文本字段版本
optional func textFieldDidEndEditing(_ textField: UITextField)
https://developer.apple.com/documentation/uikit/uitextfielddelegate/1619591-textfielddidendediting
使用下面的代码。
override func viewWillAppear(_ animated: Bool)
{
textChanged(txtField)
}
func textChanged(_ textField: UITextField) {
if textField.text == ""
{
textField.isHidden = true
}
else
{
textField.isHidden = false
}
print("Hello")
}
override func viewDidLoad()
{
super.viewDidLoad()
txtField.addTarget(self, action: #selector(textChanged(_:)),for: .allEvents)
}
func textChanged
将隐藏你的textField
如果它是空的。- 将其添加到
viewWillAppear
将在屏幕出现时检查textField
。 - 在
viewDidLoad
中,每个事件的目标 (textChanged
) 添加到textField
。