这是一个非常基本的问题,但我不确定问题是什么。我试图创造一个简单的'#hello world"用户在文本字段中输入他们想要的内容以及他们输入的内容进入标签的程序。然而,似乎没有任何事情发生,我不确定为什么因为我的推送功能完全符合我的预期。
import UIKit
class ViewController: UIViewController {
@IBOutlet var PopUp: UITextField!
@IBOutlet weak var HelloWorld: UILabel!
@IBAction func Push(_ sender: UIButton) {
PopUp.isHidden = false
PopUp.text = "hello World"
}
@IBAction func send(_ sender: UITextField) {
HelloWorld.text = sender.text
}
}
答案 0 :(得分:0)
根据您提供的代码,func send
对我来说是未知的,无论它是否甚至是开火。可能会调用func send
,也可能不会,_ sender: UITextField
IBAction
的{{1}}很奇怪。
你发射的与UITextField
有关的事件是什么?您是否尝试在用户输入HelloWorld UILabel
时更新UITextfield
?
要使用UILabel
中输入的内容更新UITextField
,您只需UIButton
内部触摸IBAction
。我认为您可以完全删除IBAction func send
,除非您尝试在用户在UILabel
中键入时更新UITextField
。如果我对这一点的说法正确,请务必从故事板中删除IBAction
Outlet
。
根据您提供的代码,Push
func不会在UILabel
中设置文字。我假设Push
是UIButton
Touch Up Inside IBAction
。您可以在HelloWorld UILabel
中设置func Push
文字,不需要使用活动的发件人,试试这个,您会看到填充的HelloWorld UILabel
文字:
@IBAction func Push(_ sender: UIButton) {
//PopUp.isHidden = false //why are you doing this? the UITextField PopUp should already be visible if you are typing text into it, so this code is superfluous as the value of PopUp.isHidden is already false
HelloWorld.text = PopUp.text
PopUp.text = "hello World"
}
如果您在UILabel
中键入UITextField
时显示文字,则应澄清您的问题。如果是这种情况,您需要将UIViewController
设为UITextFieldDelegate
答案 1 :(得分:0)
以下是一种方法:
override func viewDidLoad() {
super.viewDidLoad()
PopUp.addTarget(self, action: #selector(textFieldDidChange(_:)), for: .editingChanged) // when textfield is edited this will call
}
func textFieldDidChange(_ textField: UITextField) {
HelloWorld.text = textField.text
}