Swift3:用户输入的实时 UiLabel 更新

Posted

技术标签:

【中文标题】Swift3:用户输入的实时 UiLabel 更新【英文标题】:Swift3: Live UiLabel update on user input 【发布时间】:2017-04-13 05:15:42 【问题描述】:

我到处搜索,似乎找不到关于实时更新标签的明确答案。

如何在不使用按钮的情况下更新UILabel(实时)。例如,我有一个文本字段和一个连接到view controllerUIlabel

一旦用户开始输入textfield,相同的文本就会实时显示在 UI 标签上。因此,这消除了使用按钮来更新标签。我该怎么做呢?

【问题讨论】:

只需实现 UITextFieldDelegate 方法并在其中更新您的标签。 【参考方案1】:

使用委托方法:

func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool 
    label.text = textField.text
    return true

【讨论】:

【参考方案2】:

您正在 textField shouldChangeCharactersInRange 委托方法中更新您的标签:

   func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool 

      // Update Your label here......

     YourLabel.text = textField.text 
     return true
 

【讨论】:

@LinusG。现在用 Swift 3 更新。 @LinusG。好的,谢谢,但如果你找到了,你也可以编辑我的答案。【参考方案3】:

选项1:您可以直接对值更改的文本字段进行操作

@IBAction func textFieldValueChange(_ sender: UITextField) 
        self.label.text = sender.text
    

选项 2:将委托授予 TextField

func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool 

     label.text = textField.text 
     return true
 

【讨论】:

【参考方案4】:

第 1 步:将类扩展为 UITextFieldDelegate

class ViewController: UIViewController,UITextFieldDelegate

在 ViewDidLoad() 中

第 2 步:将以下代码添加到 ViewDidLoad()

txtDemo.delegate = self

txtDemo.addTarget(self, action: #selector(LabelChanged(_:)), for:.editingChanged)

第三步:新建函数如下:

func LabelChanged(_ sender:Any) 
    lblDemo.text = txtDemo.text

或者也使用委托方法:

func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool 
    lblDemo.text = txtDemo.text
    return true

这里 lblDemo 是 UILabel 出口,txtDemo 是 UITextField 出口

【讨论】:

以上是关于Swift3:用户输入的实时 UiLabel 更新的主要内容,如果未能解决你的问题,请参考以下文章

试图将 JSON 解析为 swift3 并显示到 UILabel

如何将输出格式化为 UILabel 作为货币?

Swift 3 Eureka 验证 UILabel 有错误

swift 3 ios:UILabel

WPF 从数据库实时更新

如何实时更新 TextArea 的输入?