0

我有一个UITextField,我从它拖到它的所有者来设置delegate故事板。

在我的 controller.h 文件中,我没有声明该类符合UITextFieldDelegate协议。

但是- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string作品!它只是工作!

我想知道为什么?

当我将 UITableView 设置为没有UITableViewDelegateand的控制器时,我曾经遇到过这种情况UITableViewDataSource

4

1 回答 1

2

调用这些方法是因为委托对象(UIWebViewUITextFieldUITableView等)不检查委托是否符合协议。他们只对它是否真正响应某个委托方法感兴趣。

毕竟,协议声明只是对编译器的提示。

于 2013-06-26T11:42:42.783 回答