我一直在使用 UITextInput 协议中的 selectedTextRange 和 beginOfDocument 属性,但正如我刚刚在下面的帖子中了解到的那样,UITextField 仅开始遵守 iOS 5 中的 UITextInput 协议,因此我的应用程序在 iOS 4.3 中崩溃。我需要另一种方法在 iOS 4.3 中执行此操作。
UITextField 和 UITextView 的 UITextInput 协议用于管理崩溃中的选择结果。
这是我现在正在做的事情(self 是我的 UITextField 子类):
UITextRange *selectedTextRange = self.selectedTextRange;
NSUInteger location = [self offsetFromPosition:self.beginningOfDocument
toPosition:selectedTextRange.start];
NSUInteger length = [self offsetFromPosition:selectedTextRange.start
toPosition:selectedTextRange.end];
NSRange selectedRange = NSMakeRange(location, length);