gpt4 book ai didi

Swift - TextField.clearsOnBeginEditing 出现问题

转载 作者:搜寻专家 更新时间:2023-11-01 05:41:26 26 4
gpt4 key购买 nike

override func viewDidLoad() {
super.viewDidLoad()
self.enterNumberTextField.clearsOnBeginEditing = true
}

将此 bool 设置为 true 不会在以后的代码中持续存在,并且我不会在我的任何代码中重置它。当用户将光标放在其中时,设置 bool 不会强制清除文本框。我检查了 bool 的值,在第一次通过代码时它是真的,尽管文本框没有清除。在后续通过代码时,bool 被重置为 false。不是我的代码。

我还尝试将这行代码放入 IBAction 函数中,所有处理都在该程序中完成。同样的结果。不清除文本框,并在所有工作已完成的 if {} 内重置为 false。

有人能告诉我为什么会这样吗?是否应该在某个地方将此 bool 设置为 true,以便它在整个程序执行过程中持续存在。

最佳答案

来自 Swift 文档:

Even if this property is set to true, the text field delegate can override this behavior by returning false from its textFieldShouldClear: method.

您的 View 是否遵守 UITextFieldDelegate 协议(protocol)?您是否实现了 textFieldShouldClear 方法?这听起来像是您问题的根源。

编辑:

如果你这样做会发生什么:

import UIKit

class ViewController: UIViewController, UITextFieldDelegate {

@IBOutlet weak var textField: UITextField!

override func viewDidLoad() {
super.viewDidLoad()
textField.clearsOnBeginEditing = true
textField.delegate = self
}

func textFieldShouldClear(textField: UITextField) -> Bool {
return true
}
}

也就是说,在顶部添加UITextFieldDelegate 协议(protocol),然后实现textFieldShouldClear,使其始终返回true。这可能不是您最终想要的,但它可能会解决问题。查看Swift documentation有关协议(protocol)和授权的更多信息。

关于Swift - TextField.clearsOnBeginEditing 出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29762094/

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