我遇到问题我正在处理一个UITextField的子类。 这将在许多类中进一步使用。 但我不想让用户以任何方式使用它的委托方法。
有没有办法做到这一点?
答案 0 :(得分:2)
覆盖setDelegate:
,以便抛出异常或记录有关操作的说明。这样,您的API用户就会知道实际发生了什么。
-(void) setDelegate: (id <UITextFieldDelegate>) delegate
{
NSLog(@"*** Use the blocks API instead of calling %s", __PRETTY_FUNCTION__);
[self doesNotRecognizeSelector: _cmd];
}
答案 1 :(得分:1)
重写-setDelegate:
方法,使其永远不会实际设置委托。您只能提供一个无法调用super
的空方法:
-(void) setDelegate:(id<UITextFieldDelegate>) delegate
{
// this method intentionally empty to prevent a delegate from ever being set
}