从1个文本字段中编辑2个标签

时间:2016-07-06 12:59:30

标签: ios swift uitextfield uilabel

美好的一天!所以这是我的问题 - 我需要从1个文本字段中更改2个不同的标签。试过简单的if-else逻辑,但它在我的情况下没有用。

    func labelTextChanger() {

    if fromUserName.text == nil {
        fromUserName.text = textFileld.text
    } else  {
        replyToUserName.text = textFileld.text
    }
}

ma case

5 个答案:

答案 0 :(得分:1)

如果我正确理解你的问题,你需要在编辑UITextField时更改2个UILabel的文本吗?如果是这样,你应该使用"编辑开始"或"编辑已更改" IBAction与您的故事板文件相关联。然后,将UILabel的值更改为UITextField的文本。

@IBAction textFileIdEditingChanged {
    fromUsername.text = textFileId.text
    replyToUserName.text = textFileId.text
} 

答案 1 :(得分:0)

试试这个,

  func labelTextChanger() {

        if fromUserName.text?.characters.count > 0 {
            fromUserName.text = textFileld.text
        } else  {
            replyToUserName.text = textFileld.text
        }
    }

因为只有在内存中不存在时才会返回nil。所以,它不能是nil

答案 2 :(得分:0)

如果您想要同时更新两个标签,则不需要else

if fromUserName.text == nil {
    fromUserName.text = textFileld.text
    replyToUserName.text = textFileld.text
}

您可以使用的一个非常广泛的实现示例。基本上你应该使用UITextFieldDelegate。当用户完成对文本字段的编辑时,将调用textFieldDidEndEditing:,并且在此功能中您可以更新标签。

import UIKit

class ViewController: UIViewController, UITextFieldDelegate {

    var labelOne = UILabel()
    var labelTwo = UILabel()
    var myTextField = UITextField()

    override func viewDidLoad() {
        super.viewDidLoad()
    }

    func textFieldDidEndEditing(textField: UITextField) {
        if textField == myTextField {
            labelOne.text = textField.text
            labelTwo.text = textField.text
        }
    }
}

您可以阅读有关UITextFieldDelegate here

的更多信息

答案 3 :(得分:0)

似乎fromUserName.text是一个空字符串 所以你应该改为:

  func labelTextChanger() {

    if fromUserName.text != "" {
        fromUserName.text = textFileld.text
    } else  {
        replyToUserName.text = textFileld.text
    }
}

答案 4 :(得分:0)

所以这里是正确的代码:

var zalupa = Bool()


func textFieldShouldReturn(textField: UITextField) -> Bool {
    if (!zalupa) {
        fromLabel.text = textField.text
        zalupa = true
    } else {
        replyLabel.text = textField.text
        zalupa = false
    }
    return true
}