0

我正在实现 UITextFieldDelegate 的方法 textField:shouldChangeCharactersInRange:replacementString 并返回“NO”,因为我正在格式化输入的文本(作为货币)并将其保存回 UITextField 的 text 属性。

但我在与 IBAction 相关的文本字段上也有“编辑更改”事件。如果我返回 NO,则不会调用此操作。当我返回 YES 时调用它,但这最终会使我的文本字段中的所有字母加倍!

  1. 这是正确的行为吗?我找不到权威人士说是这种情况。如果您可以通过指向 Apple 文档的链接来回答,那将会很有帮助。

  2. 有没有办法在我的 textField:shouldChangeCharactersInRange... 方法结束时“手动”触发此事件?(我无权从我的委托的实现中访问我的 IBAction 所定义的类。)

4

1 回答 1

4

在我实现 textField:shouldChangeCharactersInRange:replacementString (在 UITextField 上的类别中声明)结束时,我需要发送:

[self sendActionsForControlEvents:UIControlEventEditingChanged];

这“手动”在响应者链上触发事件,否则会通过返回 NO 来抑制。

于 2013-02-14T03:30:53.203 回答