在iphone中阻止委托类的方法

时间:2012-04-09 04:16:55

标签: iphone uitextfield uitextfielddelegate

我遇到问题我正在处理一个UITextField的子类。 这将在许多类中进一步使用。 但我不想让用户以任何方式使用它的委托方法。

有没有办法做到这一点?

2 个答案:

答案 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
}