gpt4 book ai didi

ios - UITextView 应该检测链接,否则应该将触摸传播到下面的 View

转载 作者:可可西里 更新时间:2023-11-01 05:03:46 25 4
gpt4 key购买 nike

我有一个 TextView ,我想在其中检测链接,但是当触摸点没有链接时,它应该将触摸传播到下面的 View (目前没有)。它将包含在一个表格 View 单元格中,如果用户点击一个链接,它应该交互(它有效),但是当另一个点被点击时,它应该选择表格 View 单元格。

我需要文本不可选择,所以我关注了 https://stackoverflow.com/a/27264999/811405并实现:

-(BOOL)canBecomeFirstResponder{
return NO;
}

在此之前它也没有发送下面的触摸事件,但我将其包括在内只是为了防止它干扰解决方案。

最佳答案

而不是阻止您的 TextView 成为第一响应者,您需要子类化 hitTest 方法,以便它在链接内发生点击时返回 textView,否则返回 nil。

@interface LinkOnlyTextView : UITextView
@end

@implementation LinkOnlyTextView

- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event
{
NSUInteger glyphIndex = [self.layoutManager glyphIndexForPoint:point inTextContainer:self.textContainer fractionOfDistanceThroughGlyph:nullptr];
NSUInteger characterIndex = [self.layoutManager characterIndexForGlyphAtIndex:glyphIndex];
if (characterIndex < self.textStorage.length) {
if ([self.textStorage attribute:NSLinkAttributeName atIndex:characterIndex effectiveRange:nullptr]) {
return self;
}
}
return nil;
}

@end

此代码片段的 Swift 版本由 @blwinters 提供,稍后在此处回答此问题:https://stackoverflow.com/a/47913329/1279096

关于ios - UITextView 应该检测链接,否则应该将触摸传播到下面的 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29539013/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com