我知道文本框的editchanged事件,当我使用mac的键盘更改文本框中的文本时,它正常工作但是我已经创建了数字按钮,当我使用按钮更改文本时,textbox的editchanged不是触发。
这是我的按钮事件
@IBAction func digitbuttonpress(_ sender: UIButton)
{
if(text1.isFirstResponder)
{
text1.text = text1.text! + sender.titleLabel!.text!
}
else if(text2.isFirstResponder)
{
text2.text = text2.text! + sender.titleLabel!.text!
}
}
答案 0 :(得分:0)
你可以在一个函数中编辑editChanged中的代码sharedTrigger
并从任何地方调用它
@IBAction func digitbuttonpress(_ sender: UIButton)
{
if(text1.isFirstResponder)
{
text1.text = text1.text! + sender.titleLabel!.text!
}
else if(text2.isFirstResponder)
{
text2.text = text2.text! + sender.titleLabel!.text!
}
self.sharedTrigger()
}
答案 1 :(得分:0)
您无法以编程方式触发editChanged
事件,当用户编辑textField
(而非textBox)时会发生该事件。
无论您在活动结束后想做什么,都必须从digitbuttonpress
以编程方式进行调用:
@IBAction func digitbuttonpress(_ sender: UIButton) {
if(text1.isFirstResponder) {
text1.text = text1.text! + sender.titleLabel!.text!
// explicitly call the handler
self.text1EditChangedHandler()
} else if(text2.isFirstResponder) {
text2.text = text2.text! + sender.titleLabel!.text!
// explicitly call the handler
self.text2EditChangedHandler()
}
}
答案 2 :(得分:0)
您无需编写新功能 - 您可以从代码中调用现有的编辑更改功能:
@IBAction func digitbuttonpress(_ sender: UIButton) {
if(text1.isFirstResponder)
{
text1.text = text1.text! + sender.titleLabel!.text!
editChanged(text1)
}
else if(text2.isFirstResponder)
{
text2.text = text2.text! + sender.titleLabel!.text!
editChanged(text2)
}
}
@IBAction func editChanged(_ sender: Any) {
print("Text Changed", sender)
// do whatever else you want to do here
}