我一直在使用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);
答案 0 :(得分:1)
假设用户在UITextField中选择了一些文本。如果其iOS 4在“选择并复制”字段下方添加标记行,则可以从剪贴板中获取文本(不确定是否可以在剪贴板更改时收到通知)。
或者,您甚至可以让他们点击某个键 - 甚至是删除键,在文本委托方法“shouldChangeCharactersInRange:”中,您可以获取范围,然后返回NO以便不更改它。