swift - 清除和恢复 UITextField 中的占位符

标签 swift uitextfield placeholder

我在 UITextField 上设置了一个 addTarget,它会在 editingDidBegin 时清除占位符文本。但我不知道如果用户单击另一个 UITextField 或该字段留空,如何恢复占位符文本。

这位于viewDidLoad()

 firstInitialTextField.addTarget(self, action: #selector(clearPlaceholderInTextField), for: UIControl.Event.editingDidBegin)

该函数位于程序主体中。

 @objc func clearPlaceholderInTextField() {

        firstInitialTextField.placeholder = ""

    }

我有几个字段想要应用相同的功能。

最佳答案

为所有文本字段创建 socket 集合,例如

@IBOutlet var textFs:[UITextField]! 

每个都有不同的标签,以及您在viewDidLoad中设置的占位符数组

var placeholders = [String]()

然后将 vc 设置为 viewDidLoad 中所有这些的委托(delegate)

textFs.forEach { $0.delegate = self }

实现

func textFieldDidBeginEditing(_ textField: UITextField) { 
   textField.placeholder =  ""
}

func textFieldDidEndEditing(_ textField: UITextField) {
   textField.placeholder =  placeholders[textField.tag]
}

关于swift - 清除和恢复 UITextField 中的占位符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55960897/

相关文章:

javascript - placehold.it 打印非英文单词

ios - 在 Swift 中创建多个倒数计时器

XCode 7 - 如何重新排列源代码元素

ios - 如何在点击 UITextField 时在 UIPickerView 中显示信息

ios - 如何验证文本字段

java - DataGen 替换 JSON 值

c# - 为什么 C# 中的 Math.Round 舍入和占位符舍入之间存在差异?

ios - Realm 快速通知停止触发

ios - 从 AppDelegate 更改另一个文件中的变量

ios - 如何在不使用键盘选项但使用 UIButton 的情况下创建 Speech To UITextField