iphone - 文本字段 :shouldChangeCharactersInRange:replacementString: in subclass

标签 iphone ios cocoa-touch delegates uitextfield

我已经将 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/

相关文章:

iphone - 您可以根据文件类型为 XCode 创建自定义构建规则吗?

iphone - 在 iPhone 上将核心数据 NSManagedObject 转换为 JSON?

ios - Storyboard中 UITabBar 的过渡样式

ios - Capabilities 下的 "Fix Issue"使我的配置文件无效。否则推不工作

iphone - 判断是否在 iPhone 或 iPad 上运行的 API

iphone - 如何为 iPhone 应用程序创建下拉列表框

iphone - UIDocumentInteractionController 的奇怪问题

ios - 如何旋转电影? 【C4框架】

ios - 在 UITextField 中检测退格事件

ios - Objective-C:在打开之前*检测键盘大小/原点?