在UITextField中获取一系列选定文本,因为NSRange是iOS 4

时间:2012-08-08 15:02:36

标签: iphone ios ios4 uitextfield uitextinput

我一直在使用UITextInput协议中的selectedTextRange和beginningOfDocument属性,但正如我刚刚在下面的帖子中了解到的,UITextField只开始遵循iOS 5中的UITextInput协议,因此我的应用程序在iOS 4.3中崩溃。我需要另一种方法在iOS 4.3中执行此操作。

UITextInput protocol usage for UITextField and UITextView to manage selection results in crash

这就是我现在正在做的事情(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);

1 个答案:

答案 0 :(得分:1)

假设用户在UITextField中选择了一些文本。如果其iOS 4在“选择并复制”字段下方添加标记行,则可以从剪贴板中获取文本(不确定是否可以在剪贴板更改时收到通知)。

或者,您甚至可以让他们点击某个键 - 甚至是删除键,在文本委托方法“shouldChangeCharactersInRange:”中,您可以获取范围,然后返回NO以便不更改它。