我已经将 UITextField 子类化,我想在子类中使用类似于 textField:shouldChangeCharactersInRange:replacementString:
的方法,以便在键入字符时收到通知,并在必要时阻止更改,但避免将字段委托(delegate)设置为自身。
我发现如果我重写 keyboardInput:shouldInsertText:isMarkedText:
和 keyboardInputShouldDelete:
我可以得到想要的效果,不幸的是这些方法是私有(private)的,任何使用类的方法无法通过 App Store 提交流程。
有人知道实现相同功能并且不需要字段是其自己的委托(delegate)的公共(public)方法吗?
更新:
我接受了创建一个单独的对象作为委托(delegate)的建议,它本身可以有一个委托(delegate)来转发消息。
最佳答案
我之前曾尝试过对 UITextField 进行子类化,后来我学会了避免这种情况,转而采用委托(delegate)路线(它有一个类似的方法,称为 - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange) range replacementString:(NSString *)string
应该做我认为你所描述的)。
关于iphone - 文本字段 :shouldChangeCharactersInRange:replacementString: in subclass,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9862224/