首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在UITextView中点击NSLinkAttributeName链接在iOS 9中不起作用

的原因是iOS 9之前的版本中,UITextView默认不支持点击链接。要使链接在UITextView中起作用,需要进行以下步骤:

  1. 设置UITextView的dataDetectorTypes属性为UIDataDetectorTypeLink,以识别并激活链接。代码示例:
代码语言:txt
复制
textView.dataDetectorTypes = .link
  1. 确保UITextView的isEditable属性设置为false,以禁止编辑。代码示例:
代码语言:txt
复制
textView.isEditable = false
  1. 在UITextViewDelegate中实现textView(_:shouldInteractWith:in:interaction:)方法,以处理链接的点击事件。代码示例:
代码语言:txt
复制
func textView(_ textView: UITextView, shouldInteractWith URL: URL, in characterRange: NSRange, interaction: UITextItemInteraction) -> Bool {
    // 处理链接点击事件
    return true
}

这样,当用户点击UITextView中的链接时,就会调用textView(_:shouldInteractWith:in:interaction:)方法进行处理。

推荐的腾讯云相关产品:腾讯云移动直播(https://cloud.tencent.com/product/mlvb)可以用于实现在移动端展示视频直播内容,适用于直播、教育、电商等场景。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

富文本AttributedString的总结

使用通过将AttributedString赋值给控件的 attributedText 属性来添加文字样式。 可设置的控件有UILabel、UITextField和UITextView。...NSVerticalGlyphFormAttributeName 设置文字排版方向 取值为NSNumber对象(整数),0表示横排文本,1表示竖排文本 iOS只支持0 */ NSString...属性单独列出来,是因为 UILabel 和 UITextField 是无法使用该属性的。...更准确点说是UILabel 和 UITextField 无法实现点击链接启动浏览器打开一个URL地址,因为在此过程中用到了一个代理函数。只能用在 UITextView 。...设置textView的 editable 属性为 NO,可编辑的状态下是不可点击的。 模拟器环境下一直无法点击真机上是正常的,不知道是不是模拟器不支持。 OC代码 原文地址

3.2K20

iOS隐私安全:用户协议及隐私政策弹框(包含超链接属性、demo支持中英文切换)

登录界面弹用户协议及隐私政策时,如果用户点击不同意,不能停留在弹框界面,需要隐藏弹框,否则无法通过OPPO安卓应用市场。...URL Webview) 效果图(点击demo的右上架文字进行中英文切换) 文本框信息对应的中英文key,用于本地化 "Explain3" = "向您说明,使用我们的服务时,我们如何收集、使用、...我们希望通过本"; "then_click_Agree" = " ,希望您仔细阅读,充分理解协议的内容后再点击同意。"...(打开对应URL Webview) - (BOOL)textView:(UITextView *)textView shouldInteractWithURL:(NSURL *)URL inRange:...(NSRange)characterRange { /** 代理方法 */ - (BOOL)textView:(UITextView *)textView shouldInteractWithURL

1.8K30

iOS文本布局探讨之三——使用TextKit框架进行富文本布局

iOS文本布局探讨之三——使用TextKit框架进行富文本布局 一、引言         关于图文混排,其实以前的博客已经讨论很多,实际开发,经常使用第三方的框架来完成排版的需求,其中RCLabel...较低版本的iOS系统,要进行富文本排版十分困难。...iOS6,系统为UILabel,UITextView等这类文本渲染控件引入了NSAttributedString属性,有了NSAttributedString这个类,创建灵活多彩的文本控件变得十分轻松...首先,iOS7新添加了一类NSTextAttachment,从类名理解它是一个文本附件,其实也正是如此,NSTextAttachment类可以向文本添加一些附件,这有些向邮件系统,寄信者可以向邮件添加附件一同发送出去...试想,如果可以向一段文本添加任意数据类型的文件,当用户点击这个文件时,可以获取到文件数据并进行业务逻辑处理,这将十分酷。

2K20

iOS 键盘和UIMenuController的并存问题

问题描述 当UITextView 处于编辑状态时,即键盘存在时,UITextView是第一响应者,而当需要弹出UIMenuController时,第一响应者需要变更为处理UIMenuController...键盘和UIMenuController不能同时出现效果预览 解决方案 史上最详细的iOS之事件的传递和响应机制-原理篇 iOS响应全家桶 此方案是通过改变响应来解决的,如果对响应不了解的先去补一下这方面的知识...保证UITextView第一响应者的前提下,我们可以覆盖改变UITextView的nextResponder,让nextResponder指向UIMenuController菜单事件的执行者;同时也要注意...,UIMenuController隐藏后,要取消nextResponder指向,不改变原有的响应。...UIMenuController - (void)longPressShowMenuView:(UILongPressGestureRecognizer *)longPress { //编辑过程

1.7K20

UI篇-CATextLayer和 富文本的交融

前言 CATextLayer适用于IOS或者MAC,比UIlablel 和 NSTextView 能做的事很多,可以这样说UIlablel是通过CATextLayer实现的,身为CALayer的三大子类之一...使用通过将AttributedString赋值给控件的 attributedText 属性来添加文字样式。有属性的控件有UILabel、UITextField和UITextView。...设置文本特殊效果,取值为 NSString 对象,目前只有图版印刷效果可用: //NSAttachmentAttributeName NSTextAttachment 设置文本附件,常用插入图片 //NSLinkAttributeName...文字方向 @[@(1),@(2)] 分别代表不同的文字出现方向等等,我想你一定用不到它 - - //NSVerticalGlyphFormAttributeName 水平或者竖直文本 1竖直 0水平 iOS...没卵用,不支持竖版 2.设置段落样式:段落样式中允许你设置文字与文字之间的行间距、字符间距、以及对齐模式,但是注意的是,设置段落样式的时候,必须保证控件的 numberofline属性必须为0 NSMutableAttributedString

2.4K10

图文混排

一、概念架构: Core Text 是基于 iOS 3.2+ 和 OSX 10.5+ 的一种能够对文本格式和文本布局进行精细控制的文本引擎。...它良好的结合了 UIKit 和 Core Graphics/Quartz: UIKit 的 UILabel 允许你通过 IB 简单的拖曳添加文本,但你不能改变文本的颜色和其中的单词。...CoreText实现表情混排的原理,简介中介绍过,一个CTLine代表一行,而一个CTLine又由多个CTRun组成,这里实现表情混排的原理其实就是把CTLine的某一个CTRun替换成空白字符,然后再根据这个...4、NSTextContainer NSTextContainer描述了文本屏幕上显示时的几何区域,每个text container与一个具体的UITextView相关联。...5、UITextView UITextView作为显示出来的实际的文本视图, TextKit ,文本视图有两个目的:第一,它是文本系统用来绘制的视图。

1.5K30

精品资源汇总:(持续更新)

点击上方蓝字关注我们 引言 欢迎大家来到#公众号:iOS逆向的《精品资源汇总》目录 本文列出最受欢迎的资源,以便供大家快速查找自己所需的资料 文中的蓝字都是超级链接,点击进入即可 I、iOS自定义视图相关热门资源...textView:shouldInteractWithURL:inRange,处理点击 iOS电子签名上篇【核心原理:旋转特定的屏幕】应用场景:采集电子签名,支持签名界面为横屏其余页面都是竖屏、清除重写.../14045495 原理文章:https://kunnan.blog.csdn.net/article/details/112309871 V、iOStabBar按钮再次点击实现界面刷新 video...iOStabBar按钮再次点击实现界面刷新(包含完整demo)【特色功能:更新数据期间旋转tabbar的icon】 iOStabBar按钮再次点击实现界面刷新 https://live.csdn.net...tabBar按钮再次点击实现界面刷新)] 本文首发CSDN https://kunnan.blog.csdn.net/article/details/77885824 本文的demo 案例功能: 1、

1K30

UITableViewCell系列之(一)让你的cell支持二次编辑

这只是一个开头,关于UITableViewCell的一些特殊的用法,我还会继续在这个系列更新。 如果你觉得按照步骤一步一步读下去浪费时间,喜欢直接看代码请点击。...另外一种方法是直接在当前控制器(的界面)上以动画(甚至是没有动画)的形式弹出一个UITextViewUITextView上修改文本内容,修改完成后再隐藏/移除UITextView,把内容重新显示到tableView...思路如下: 注意:以下操作全部是didSelectRowAtIndexPath:方法中进行的 获取点击的那一行celltableView坐标系上的frame,并转换为view坐标系上的frame,...此处称为frame1 根据frame1获取点击的那一行cell cell上添加一个和label同样尺寸、同样坐标的UITextView,以让UITextView正好遮盖住label 把cell上的内容显示到...UITextView上编辑文本,编辑完成后再跟新数据,刷新tableView。

7.8K40

UI篇-UIResponder之事件传递和响应精析

iOS的几种常见事件 ? 这篇文章只讨论触摸事件。...分别有多点触控、摇一摇以及远程操作(iOS之后新增了3DTouch事件类型)。一个用户点击事件处理过程,UIEvent对象是唯一的。...其中涉及到了UIView的两个方法(可以重写),当hitTest返回YES才会调用这个View的 Touch事件,因为如果返回NO,则当前View被排除相应之外了。 ?...响应者:由一系列“下一个响应者”组成 其顺序如下: 1.iOS系统处理事件时,通过UIApplication对象和每个UIWindow对象的sendEvent:方法将事件以消息的形式分发给具体处理此事件的第一响应者...开发 - 事件传递响应 iOS编程的快递小哥-Responder Chain(响应) IOS 应用事件的传递分析

2.4K30

iOS学习——键盘弹出遮挡输入框问题解决方案

iOS或Android等移动端开发过程,经常遇到很多需要我们输入信息的情况,例如登录时要输入账号密码、查询时要输入查询信息、注册或申请时需要填写一些信息等都是通过我们键盘来进行输入的,iOS开发过程...,一般用于进行输入信息的有两类:UITextField和UITextView,前者是单行输入文本框,后者是可滑动的多行输入文本框,在这整个开发过程,我们需要控制键盘的弹出和收起、输入结束的时候获取输入的信息...的一些方法,两者控制文本框的相应流程稍有差别,但是都差不多,接下来,我们就从官方文档开学习一下文本框输入完整的响应过程。...关于收起键盘,我们通常有两种做法如下: 一是通过我们的键盘上的【return/完成】按键的点击事件来设置 二是设置点击空白处就收起键盘,这种方法现在比较普遍   这两种做法UITextField和UITextView...上的实现在我之前的随笔中有专门讲到过了,想了解的小伙伴可以直接戳这里:ios学习——键盘的收起 三 文本框内容的获取   之前的分析,我们知道,文本框在结束之后都会调用一个方法就是  textFieldDidEndEditing

3.5K60

iOS富文本使用指南: 1、封装富文本API,采用block实现链式编程 2、 超链接属性 3、HTML字符串与富文本互转

引言 【持续更新】 原文: https://kunnan.blog.csdn.net/article/details/114014827 I、封装富文本API,采用block实现链式编程 iOS开发效率工具...效果 4《用户协议及隐私政策》 弹框的实现步骤: 4.1、自定义TextView,采用富文本属性进行内容设置attributedText(包括下划线NSUnderlineStyleSingle、超链接NSLinkAttributeName...、颜色NSForegroundColorAttributeName 等信息) 4.2、实现代理方法textView:shouldInteractWithURL:inRange,处理点击超链接的回调(打开对应...专注《iOS应用逆向与安全》(包括iOS基础)"; NSAttributedString *attStr = [[...NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType} documentAttributes:nil error:nil]; IV、富文本适配系统

1.4K10

IOS触摸事件分发机制详解

原理详解 IOS把用户触发事件打包成一个UIEvent对象,作为事件传递的消息载体,放入当前活跃的APP的消息队列,然后通过Hit-Testing来找到响应者,响应者通过响应的传递做出响应,这就是IOS...IOS把屏幕监测到的点击事件用UITouch对象来表示,最终被封装成UIEvent作为事件的消息载体响应上传递。...举例说明,假如用户点击下图中的 view E,那么IOS是通过如下顺序来找到view E的: 点击view A的范围内,所以就检测它的子视图 view B和 view C。...点击不在view B内,但是view C内,所以接下来检测view D和view E 点击不在view D内,而是view E内,并且view E是包含点击的视图树离用户最近的,所以view E...响应序列iOS确定一个事件并将它传递给initial object(通常是view)时开始。所以initial view有处理事件的第一个机会。

3.5K90

iOS表情键盘的完整实现

首先是QQ和微信,这两者差不多,切换到表情键盘的时候都是没有光标的,这样的用户体验是非常不好的,没有办法输入表情的时候框选区域,也不能拖动光标进行特定位置的复制黏贴删除等操作,微信甚至输入框里显示的都不是点击的表情图片...self.textView reloadInputViews]; break; default: break; } } 去除表情的拖拽交互 iOS11...上,UITextView上的NSTextAttachment(表情)默认可以进行拖拽交互,但是却导致拖动光标时很容易触发这个交互(图示可以查看上面说到的微博国际版的误触)。...if (@available(iOS 11.0, *)) { // 只iOS11及以上才有这个属性 _textView.textDragInteraction.enabled = NO;...} 与服务的的交互 我们输入框输入的内容与服务端进行交互的时候都是用纯文本的,比如会把 "笑死了?"

1.9K30

iOS 10如何搭建一个语音转文字框架

接下来,到 Main.storyboard 添加一个 UILabel,一个 UITextView, 和一个 UIButton,你的storyboard应该看起来如下图: ?...接下来 ViewController.swift文件UITextView 和UIButton 定义outlet变量。...现在点击Run按钮,你应该可以编译和成功运行app了,不会报任何错误。 ? 注意:如果稍后工程运行完成时还没有看到语音输入授权框,那是因为你是模拟器上运行的程序。...把app部署到一个iOS10的设备,然后点击“Start Recording”按钮。去说些什么吧! 注意: 苹果公司对每个设备的识别功能都有限制。...希望你喜欢这篇文章并且探索这个全新API获得乐趣。 作为参考,你可以在这里查看Github完整工程

1.9K20

史上最全的iOSUITextView实现placeHolder占位文字的N种方法

前言 iOS开发,UITextField和UITextView是最常用的文本接受类和文本展示类的控件。UITextField和UITextView都输入文本,也都可以监听文本的改变。...从这个角度,UITextView功能上是优于UITextField的。...而开发,我们经常会遇到既要占位文字,又要可以多行展示并且可以滚动的控件,单纯的UITextField或者UITextView都不能满足这种产品上的需求。...图(一) 方法一 1.把UITextView的text属性当成“placeholder”使用。 2.开始编辑的代理方法里清除“placeholder”。...setNeedsDisplay]; } - (void)setText:(NSString *)text { [super setText:text]; if (text.length) { // 因为是文本改变的代理方法判断是否显示

9.9K40

iOS学习——tableview带编辑功能的cell键盘弹出遮挡和收起问题解决

最近在项目中经常用到UITableView的cell带有UITextField或UITextView的情况,然后在这种场景下,当我们点击屏幕较下方的cell进行编辑时,这时候键盘弹出来会出现遮挡待输入的...这个问题在之前我们的随笔iOS学习——键盘弹出遮挡输入框问题解决方案也有讲过对应的解决方案,但是该方案最近的应用还有点小问题,我们在这里重新进行处理好。...2.1 UITextField或UITextView点击之后的详细流程   在对cell进行封装和自定义的时候,我们需要考虑我们的UITextField或UITextView点击编辑框到结束编辑的整个过程是怎么样的...下面的流程就是UITextField或UITextView整个编辑过程的详细流程步骤: 成为第一响应者之前,文本框调用其代理的textFieldShouldBeginEditing:  方法来允许或阻止其第一响应者...点击之后的详细流程分析我们知道,点击文本之后弹出键盘时会发送一个UIKeyboardWillShowNotification的通知,在编辑结束之后收起键盘时则也会发送一个UIKeyboardWillHideNotification

3.9K80

Block实现回调和简单的学习思考

就拿我昨天才写的博客为例:[iOS] 输入框高度随输入内容变化 昨天的例子,我的组件封装控件后,是通过代理实现返回行数的变化的。这次改用Block来实现。...定义一个Block类型,用来代替原来的@Protocol typedef void(^getTextViewRows)(NSInteger lines); interface声明参数为Block的实例方法...第2步添加声明Block变量 @property (nonatomic, strong) getTextViewRows b_getRowsBlock; - (void)textViewRowsChangeTo...,把行数作为参数传给Block - (void)textViewDidChange:(UITextView *)textView { NSInteger numLines = textView.contentSize.height...就像我第一次看代理,虽然了解大概实现过程,但用起来还是经常会出现忘写XX.delegate = self这看似微不足道的代码的,导致的结果就是调试程序的时候发现代理不起作用,然后排查业务逻辑,看手势事件有没有捕捉到

75820

编码篇-iOS开发的奇巧小伎

33、获取手机RAM容量 34、UITextView显示html文本 35、选中textField或者textView所有文本(我这里以textView为例) 36、隐藏UITextView/UITextField...光标 37、当UITextView/UITextField没有文字时,禁用回车键 38、通知监听APP生命周期 39、获取collectionViewCell屏幕的frame 40、UITextField...内 BOOL isContains = CGRectContainsPoint(rect, point); 20.UITextView打开或禁用复制,剪切,选择,全选等功能 // 继承UITextView...显示html文本 UITextView *textView = [[UITextView alloc] initWithFrame:CGRectMake(20, 30, 100, 199)]; textView.backgroundColor...button同时按push到新界面,两个都会响应,可能导致push重叠) // UIView有个属性叫做exclusiveTouch,设置为YES后,其响应事件会和其他view互斥(有其他view事件响应的时候点击不起作用

5.3K10

iOS Human Interface Guidelines》——Text Field文本域

一个文本域: 是一个固定高度的圆角区域 当用户点击它时自动显示键盘 可以包含系统提供的按钮,比如书签按钮 可以显示使用多种风格的文本(查看UITextView学习更多关于这个的内容) 使用文本域从用户获取小数量的信息...比如说,你可以文本域的左边或右边显示自定义的图片,或者你可以添加一个系统提供的按钮,比如书签按钮。一般来说,你应该在文本域的左边显示它的用途,右边显示其额外的特性,比如书签。...合适的话文本域的右边显示一个清除按钮。当这个元素存在的时候,点击它可以清除文本域的内容,不管你在其上显示了任何图片。 如果能帮助用户理解文本域的用途的话,显示一个示意。...iOS提供了很多不同的键盘类型,每一种都设计了一种不同的输入类型。查看UIKeyboardType和UITextInputTraits Protocol Reference学习关于键盘类型的内容。...阅读Managing the Keyboard学习更多关于在你的app管理键盘的内容。注意你无法控制键盘的输入方法和布局,因为这些取决于用于的语言设置。 本文翻译自苹果官方开发文档

43120
领券