Tob*_*ias 59 objective-c uitextview ios ios6 ios7
我有一个UITextView通过Interface Builder管理的.作为数据检测,我检查了"链接".在iOS 6中,一切正常,链接突出显示且可点击.但是在iOS 7中,所有链接仍然只是纯文本.未选中可编辑和可选择的复选框.
可能引起关注的是,UITextView容器视图的子视图再次位于a UIScrollView.
Tob*_*ias 69
似乎在iOS 7中,链接检测仅在UITextView可选时才有效.因此,使我的UITextView不可选择停止链接检测工作.
我也在iOS 6中对此进行了测试,我可以确认在iOS 6中链接检测即使在UITextView不可选择的情况下也能正常工作.
The*_*son 32
我今天在电话号码检测方面遇到了一些问题.在我将文本设置为其他内容之后,似乎UITextView会保留旧的电话号码并保持文本突出显示.
我发现如果在将文本设置为新字符串之前将setText:nil设置为nil,则会重置textview,并且电话号码将正常突出显示.我想知道这是否是iOS 7.0中UITextView的某种错误
无论哪种方式,这确实对我有用.
Rac*_*eur 27
当iOS7第一次出现时,这困扰了我,我在这个线程中找到了答案(在设置实际值之前将UITextView的text属性设置为nil).然后突然,问题(对我而言,整个字符串被突出显示为链接)被重新裁剪(假设是由于iOS更新).
对我来说最终的诀窍是停止使用text属性并设置attributedText.一旦我这样做,需要设置字体/滚动/可选/可编辑/等.以编程方式,消失了.我在IB中定义了我的UITextView,设置了我想要的值(不可滚动,不可编辑,可选,检测链接和电话号码),然后构建了一个属性字符串并设置:
myUITextView.attributedString = myAttributedString;
Run Code Online (Sandbox Code Playgroud)
突然一切都按预期工作了.希望这可以帮助其他人.
sva*_*all 18
我遇到了同样的问题,并且在UITextView上禁用滚动会激活加载时的链接检测,而不是仅在用户与textview交互后才开始工作.UITextView也必须是可选择的且不可编辑的.
detailTextView.scrollEnabled = NO;
detailTextView.editable = NO;
detailTextView.selectable = YES;
Run Code Online (Sandbox Code Playgroud)
在iOS6上不需要可选择或启用滚动.
要检查的另一件事是在单元格的单元格和内容视图上启用了用户交互,否则链接将无法单击.
Har*_*hak 15
检查这些行必须添加使用的数据检测器性能textview的UItableView细胞.
txtvwMsgText.userInteractionEnabled = YES;
txtvwMsgText.dataDetectorTypes = UIDataDetectorTypeLink;
txtvwMsgText.scrollEnabled = NO;
txtvwMsgText.editable = NO;
txtvwMsgText.selectable = YES;
Run Code Online (Sandbox Code Playgroud)
你应该看看NSDataDetector.
您可以使用它来查找和处理不同的数据(链接,电话号码等).看看这个网站:
http://nshipster.com/nsdatadetector/
您还可以使用dataDetectorTypes属性UITextView来设置要在代码中检测的内容.可能只是你的故事板过渡问题.
textView.dataDetectorTypes = UIDataDetectorTypeLink;
Run Code Online (Sandbox Code Playgroud)
请注意,如果不可编辑,您的textview将仅识别链接!
这是一个很好的教程,如何editable UITextView使用`link detection``
从现在开始,我没有遇到任何问题.
诀窍是GestureRecognizer转发触摸并启用/禁用编辑.
您可以对selectable / not selectable问题应用相同的内容iOS7
经过几次测试,我找到了解决方案.
如果您希望链接处于活动状态且未启用选择,则需要编辑gestureRecognizers.
例如 - 有3个LongPressGestureRecognizers.一个用于单击链接(minimumPressDuration = 0.12),第二个用于放大可编辑模式(minimumPressDuration = 0.5),第三个用于选择(minimumPressDuration = 0.8).此解决方案删除LongPressGestureRecognizer以进行选择,其次用于缩放编辑模式.
NSArray *textViewGestureRecognizers = self.captionTextView.gestureRecognizers;
NSMutableArray *mutableArrayOfGestureRecognizers = [[NSMutableArray alloc] init];
for (UIGestureRecognizer *gestureRecognizer in textViewGestureRecognizers) {
if (![gestureRecognizer isKindOfClass:[UILongPressGestureRecognizer class]]) {
[mutableArrayOfGestureRecognizers addObject:gestureRecognizer];
} else {
UILongPressGestureRecognizer *longPressGestureRecognizer = (UILongPressGestureRecognizer *)gestureRecognizer;
if (longPressGestureRecognizer.minimumPressDuration < 0.3) {
[mutableArrayOfGestureRecognizers addObject:gestureRecognizer];
}
}
}
self.captionTextView.gestureRecognizers = mutableArrayOfGestureRecognizers;
Run Code Online (Sandbox Code Playgroud)
在iOS 9上测试过,但它应该适用于所有版本(iOS 7,8,9).我希望它有所帮助!:)
| 归档时间: |
|
| 查看次数: |
51714 次 |
| 最近记录: |