IOS Swift - 手动触发文本框事件
IOS Swift - Manually trigger textfield events
如何根据 UITextField 对象手动触发事件?
textFieldShouldBeginEditing(_:)
textFieldDidBeginEditing(_:)
textFieldShouldEndEditing(_:)
textFieldDidEndEditing(_:)
在当前场景中。上面的回调中有一些逻辑。有时我手动更新文本字段
textfield.text = <new text>
我想要
textFieldDidBeginEditing
被触发,喜欢(希望如此)
textfield.trigger("textFieldDidBeginEditing")
虽然我的方法可能不完全正确,但上述解决方案很可能对我有用。虽然,如果我能用不同的方式表达我的问题,那就是:
- 当通过 UI 或 [=30= 更改 UITextFields 值(文本)时,我如何 运行 一些逻辑(代码) ]
textfield.text = <new value>
详细说明我的回答和推理:
我认为不可能触发此类事件 "by hand" - 也不应该 你能够。它只会导致比它解决的问题更多的问题。例如。例如,插入符号应该如何处理,它应该显示在文本字段中吗?
因此,我建议您将逻辑提取到第二个方法中,并从当前代码和处理程序中调用该方法
而不是
func textFieldDidEndEditing(textField: UITextField) {
// your logic is here
let k = 1 + 2
}
func yourCurrentCode() {
// somehow trigger the event "textFieldDidEndEditing"
}
做类似的事情
func textFieldDidEndEditing() {
myLogic()
}
func yourCurrentCode() {
myLogic()
}
func myLogic() {
// your logic should be here
let k = 1 + 2
}
如果您希望每次 UITextField 的值更改时都收到通知,您应该使用通知
UITextFieldTextDidChangeNotification
撇开你试图解决的情况;不管这是否是正确的方法;您可以像这样触发文本字段事件:
textField.sendActions(for: UIControl.Event.editingChanged)
如何根据 UITextField 对象手动触发事件?
textFieldShouldBeginEditing(_:)
textFieldDidBeginEditing(_:)
textFieldShouldEndEditing(_:)
textFieldDidEndEditing(_:)
在当前场景中。上面的回调中有一些逻辑。有时我手动更新文本字段
textfield.text = <new text>
我想要
textFieldDidBeginEditing
被触发,喜欢(希望如此)
textfield.trigger("textFieldDidBeginEditing")
虽然我的方法可能不完全正确,但上述解决方案很可能对我有用。虽然,如果我能用不同的方式表达我的问题,那就是:
- 当通过 UI 或 [=30= 更改 UITextFields 值(文本)时,我如何 运行 一些逻辑(代码) ]
textfield.text = <new value>
详细说明我的回答和推理:
我认为不可能触发此类事件 "by hand" - 也不应该 你能够。它只会导致比它解决的问题更多的问题。例如。例如,插入符号应该如何处理,它应该显示在文本字段中吗?
因此,我建议您将逻辑提取到第二个方法中,并从当前代码和处理程序中调用该方法
而不是
func textFieldDidEndEditing(textField: UITextField) {
// your logic is here
let k = 1 + 2
}
func yourCurrentCode() {
// somehow trigger the event "textFieldDidEndEditing"
}
做类似的事情
func textFieldDidEndEditing() {
myLogic()
}
func yourCurrentCode() {
myLogic()
}
func myLogic() {
// your logic should be here
let k = 1 + 2
}
如果您希望每次 UITextField 的值更改时都收到通知,您应该使用通知
UITextFieldTextDidChangeNotification
撇开你试图解决的情况;不管这是否是正确的方法;您可以像这样触发文本字段事件:
textField.sendActions(for: UIControl.Event.editingChanged)