我正在为我的 iPhone 5(上面有 iOS 8.0.2)创建一个带有 Xcode 6.0.1 的 iOS 8 应用程序。我想让它这样当用户点击我时UITextView
,所有的文本都会被选中,这样他就可以轻松地开始输入并擦除那里的内容(但我不希望文本被自动擦除,因为用户可能想要保留它或附加到它)。为此,我有以下代码:
- (void)textViewDidBeginEditing:(UITextView *)textView {
if ([textView hasText]) {
NSLog(@"selectedRange before: %d", textView.selectedRange.length);
[textView selectAll:self];
NSLog(@"selectedRange after: %d", textView.selectedRange.length);
}
}
当调用此方法时,控制台输出是我所期望的(即长度与's 文本selectedRange
中的字符数相同)。textView
但是,没有任何内容显示为在 中被选中,UITextView
并且它没有被选中(即没有选择菜单弹出)。
我在互联网上看到了多个这样的问题,但没有一个提供的解决方案对我有用(其中一些人将其作为一个错误写了出来,但没有提供任何解决方案)。将发件人 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];
}
}
但是,它也有同样的问题。
有什么建议么?