美好的一天!所以这是我的问题 - 我需要从1个文本字段中更改2个不同的标签。试过简单的if-else逻辑,但它在我的情况下没有用。
func labelTextChanger() {
if fromUserName.text == nil {
fromUserName.text = textFileld.text
} else {
replyToUserName.text = textFileld.text
}
}
答案 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
}