我一直在使用UITextInput協議中的selectedTextRange和beginningOfDocument屬性來做它,但正如我在下面的帖子中所學到的,UITextField只開始遵守UITextInput協議在iOS 5中,所以我的應用在iOS 4.3中崩潰。我需要另一種方式在iOS 4.3中執行此操作。獲取UITextField中所選文本的範圍,因爲NSRange是iOS 4
UITextInput protocol usage for UITextField and UITextView to manage selection results in crash。
這裏是我現在正在做什麼(自我是我的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);
感謝您的回答!實際上,我們最終關閉了iOS 4.3的功能。這原來是最乾淨的解決方案。 – 2012-08-09 19:46:13