UITextField 和 UITextView 都采用 UITextInput 协议。UITextView 的 selectedRange 属性返回 NSRange,其中 UITextField 没有任何选择属性/方法。我想使用一个例程来管理 UITextField 或 UITextView 中的插入。
所以我做了以下事情:
id<UITextInput> textInput = nil;
if ([self.aTextView isFirstResponder]) {
textInput = self.aTextView;
} else if ([self.aTextField isFirstResponder]) {
textInput = self.aTextField;
}
if (textInput != nil) {
UITextRange * selectedRange = textInput.selectedTextRange;
// ...
}
只是为了在 selectedTextRange 属性上使用“无法识别的选择器发送到实例”而立即崩溃。
我究竟做错了什么?
[编辑:似乎在 iOS 5 中工作,但在 iOS 4 设备上崩溃。这是 iOS 5 的变化吗?文档说协议是 3.2+。]