我使用Xcode 6.0.1为我的iPhone 5(其中包含iOS 8.0.2)创建iOS 8应用程序。我想这样做是为了当用户点击我的UITextView
时,所有文本都会被选中,这样他就可以轻松地开始输入和删除那里的内容(但我不希望文本被自动删除,因为用户可能想要保留它或追加到它)。要做到这一点,我有以下代码:UITextView selectAll方法无法按预期方式工作
- (void)textViewDidBeginEditing:(UITextView *)textView {
if ([textView hasText]) {
NSLog(@"selectedRange before: %d", textView.selectedRange.length);
[textView selectAll:self];
NSLog(@"selectedRange after: %d", textView.selectedRange.length);
}
}
当这个方法被调用,控制台输出是什么,我希望(即selectedRange
长度是一样的人物在textView
的文字数) 。然而,在UITextView
中没有任何显示,并且它没有被选择(即没有选择菜单弹出)。
我在网上看到过类似这样的多个问题,但没有一个提供的解决方案为我工作(其中一些人在没有提供任何解决方案的情况下将它写成了bug)。将发件人ID更改为self
以外的内容(例如nil
)没有帮助,也没有帮助按照一个人的建议拨打[textView select:self]
。我也试过这个代码:
- (void)textViewDidBeginEditing:(UITextView *)textView {
if ([textView hasText]) {
UITextRange *range = [textView textRangeFromPosition:textView.beginningOfDocument toPosition:textView.endOfDocument];
[textView setSelectedTextRange:range];
}
}
但是,它有同样的问题。
有什么建议吗?
奇怪的行为。正如你可以在http://m.youtube.com/watch?v=iPXsVvva97E这个视频中看到的,它应该像这样工作。 – TMob 2014-10-10 20:30:14
正是如此。我也看过那个视频,不知道我做错了什么。 – 2014-10-10 20:54:51
我有同样的问题,你有没有发现任何修复? – 2014-11-28 16:24:41