我有一个UITextField
,我将其拖动到其所有者,以在故事板中设置delegate
。
在我的controller.h文件中,我没有声明该类符合UITextFieldDelegate
协议。
但- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
有效!它只是有效!
我想知道为什么?
在我将UITableView设置为没有UITableViewDelegate
和UITableViewDataSource
的控制器之前,我遇到过这个问题。
答案 0 :(得分:2)
调用方法是因为委托对象(UIWebView
,UITextField
,UITableView
等)不检查委托是否符合协议。他们只对实际响应某种委托方法感兴趣。
毕竟,协议声明只是编译器的提示。