0

我有一个问题,我正在研究 UITextField 的子类。它将在许多课程中进一步使用。但我不想让用户以任何方式使用它的委托方法。

有没有办法做到这一点?

4

2 回答 2

2

覆盖setDelegate:,以便它抛出异常或记录关于做什么的指令。这样您的 API 用户就会知道实际发生了什么。

-(void) setDelegate: (id <UITextFieldDelegate>) delegate
{
    NSLog(@"*** Use the blocks API instead of calling %s", __PRETTY_FUNCTION__);
    [self doesNotRecognizeSelector: _cmd];
}
于 2012-04-09T04:59:50.223 回答
1

覆盖该-setDelegate:方法,使其从不实际设置委托。您可以只提供一个无法调用的空方法super

-(void) setDelegate:(id<UITextFieldDelegate>) delegate
{
    // this method intentionally empty to prevent a delegate from ever being set
}
于 2012-04-09T04:31:35.157 回答