gpt4 book ai didi

ios - 链接的 TTTAttributedLabel 和弹出窗口

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:43:32 29 4
gpt4 key购买 nike

是否可以检测链接文本的 CGRect 或位置的 CGPoint,以在 TTTAtributedLabel 中显示点击链接的弹出窗口(在 ipad 上) ?我需要使用 TTTAtributedLabel 在点击的链接上显示弹出窗口。

谢谢!

最佳答案

您只能通过修改 TTTAttributedLabel 以支持此行为来执行此操作。

1)修改委托(delegate)方法:

- (void)attributedLabel:(TTTAttributedLabel *)label
didSelectLinkWithURL:(NSURL *)url
atPoint:(CGPoint)point;

2) 在 TTTAtributedLabel.m 源代码中,修改 touchesEnded:withEvent: 并获取触摸点并将其传递给委托(delegate)方法。

    switch (result.resultType) {
case NSTextCheckingTypeLink:
if ([self.delegate respondsToSelector:@selector(attributedLabel:didSelectLinkWithURL:atPoint:)]) {
UITouch *touch = [touches anyObject];
CGPoint touchPoint = [touch locationInView:self];
[self.delegate attributedLabel:self didSelectLinkWithURL:result.URL atPoint:touchPoint];
return;

3) 在 View Controller 中,您需要将该触摸点转换为相对于 View Controller View 的坐标:

#pragma mark TTTAttributedLabelDelegate
- (void)attributedLabel:(TTTAttributedLabel *)label
didSelectLinkWithURL:(NSURL *)url
atPoint:(CGPoint)point
{
CGPoint normalizedPoint = [self convertPoint:point fromView:label];

UIActionSheet *actionSheet = [[UIActionSheet alloc] ...
[actionSheet showFromRect:CGRectMake(normalizedPoint.x, normalizedPoint.y-kSensibleOffset, 10, 10)
inView:label
animated:YES];
}
#pragma mark -

关于ios - 链接的 TTTAttributedLabel 和弹出窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14022175/

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