3

我有一个包含 UITextField 的 UIAlertView:

UITextField *textField = [alertView textFieldAtIndex:0];

现在我想为 textField 设置 inputDelegate 属性:

[textField setInputDelegate:self];

我的视图控制器(自我)符合 UITextInputDelegate 并且它具有方法

- (void)textDidChange:(id<UITextInput>)textInput;

但由于某种原因,当我更改 textField 中的文本时,永远不会调用此方法。所以我假设我的视图控制器没有设置为 textField 的 inputDelegate。

该文档指出:

文本输入系统在运行时自动为该属性分配一个委托。采用 UITextInput 协议的视图负责在适当的时刻通知输入委托。

这是否意味着我无法更改文本字段的 inputDelegate?

每当其内容发生变化时,如何实现 textField 真正调用textDidChange:视图控制器中的委托方法?

4

2 回答 2

1

我有同样的经验,inputdelegate 永远不会工作。

我为你找到了这个页面,

输入委托

但是,为了解决您的问题,我建议您改用委托!

UITextField *textField = [alertView textFieldAtIndex:0];

textField.delegate = self;
于 2013-07-19T14:00:56.420 回答
0

我不知道如何为 a设置inputDelegateUITextField,但您可以观察您UITextFieldUITextFieldTextDidChange 通知,以便在其文本更改后收到通知。

于 2017-08-13T13:45:51.987 回答