textField:shouldChangeCharactersInRange:replacementString:in subclass

Tom*_*ing 6 iphone cocoa-touch delegates uitextfield ios

我已经将UITextField子类化,并且我想使用类似于textField:shouldChangeCharactersInRange:replacementString:子类内部的方法来在键入字符时获得通知,并在必要时阻止更改,但是避免将字段委托给自己.

我发现如果我覆盖keyboardInput:shouldInsertText:isMarkedText:并且keyboardInputShouldDelete:我可以获得所需的效果,不幸的是这些方法是私有的,任何使用该类的东西都不会通过App Store提交过程.

任何人都知道一个公共方法实现同样的事情,并不要求该字段是自己的委托?

更新:

我接着建议创建一个单独的对象只是作为委托,它本身可以有一个委托来转发消息.

Sco*_*den 2

之前尝试过对 UITextField 进行子类化,后来我学会了避免这种情况并转而采用委托路线(它有一个名为的类似方法,- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string应该执行我认为您所描述的操作)。