首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何在SwiftUI中将按钮和链接集成到文本中

如何在SwiftUI中将按钮和链接集成到文本中
EN

Stack Overflow用户
提问于 2021-05-19 20:46:39
回答 1查看 35关注 0票数 2

我想知道如何在SwiftUI文本中添加按钮和链接。举个例子:在一个很长的文本中,一些特殊的词是按钮或链接,就像维基百科上的一篇文章:

有一些蓝色标记为链接的单词,我如何在SwiftUI中访问它?

谢谢,Boothosh

EN

回答 1

Stack Overflow用户

发布于 2021-08-11 11:39:52

我知道这是多么痛苦!我花了很多时间在互联网上阅读关于如何做同样的事情的文章,发现了最简单的解决方案。

解决方案here的参考

1.添加TextView(...)添加到您的项目

代码语言:javascript
运行
AI代码解释
复制
/// Text view with click able links
struct TextView: UIViewRepresentable {
    
    @Binding var text: String
    @Binding var textStyle: UIFont.TextStyle
    
    func makeUIView(context: Context) -> UITextView {
        let textView = UITextView()
        
        textView.delegate = context.coordinator
        textView.font = UIFont.preferredFont(forTextStyle: textStyle)
        textView.autocapitalizationType = .sentences
        textView.isSelectable = true
        textView.isUserInteractionEnabled = true
        textView.isEditable = false
        textView.dataDetectorTypes = .link
        
        return textView
    }
    
    func updateUIView(_ uiView: UITextView, context: Context) {
        uiView.text = text
        uiView.font = UIFont.preferredFont(forTextStyle: textStyle)
    }
    
    func makeCoordinator() -> Coordinator {
        Coordinator($text)
    }
    
    class Coordinator: NSObject, UITextViewDelegate {
        var text: Binding<String>
        
        init(_ text: Binding<String>) {
            self.text = text
        }
        
        func textViewDidChange(_ textView: UITextView) {
            self.text.wrappedValue = textView.text
        }
    }
}

完全用法:

代码语言:javascript
运行
AI代码解释
复制
    struct DetailsView: View {
@State var text : String = "Yo.. try https://google.com"
@State private var textStyle = UIFont.TextStyle.body

var body: some View {
        TextView(text: $text, textStyle: $textStyle)
  }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67610667

复制
相关文章
如何在SwiftUI中实现interactiveDismissDisabled
由于健康笔记[2]中数据录入都是在Sheet中进行的,为了防止用户在录入过程中由于误操作(使用手势取消Sheet)丢失数据,因此,从最初的版本开始,我就一直使用各种手段加强对Sheet的控制。
东坡肘子
2022/07/28
4K0
如何在SwiftUI中实现interactiveDismissDisabled
如何在Linux中将文本内容追加到文件末尾?
在Linux中处理配置文件时,有时您需要将诸如配置参数之类的文本附加到现有文件中。追加只是意味着将文本添加到文件的末尾。
用户6543014
2020/03/06
14.7K0
如何在Linux中将文本内容追加到文件末尾?
如何在 .Net 7 中将 Query 绑定到数组
在 .Net 7 中,我们可以通过绑定数组的方式来接收来自查询字符串的参数。这样就不需要再使用逗号分隔的字符串来获取参数了。
newbe36524
2023/08/23
1520
文本、图片和按钮在Flutter中怎么用
与iOS、Android和React类似,作为一个UI框架,Flutter自然也提供了很多UI控件。而文本、图片和按钮,则是这些不同的UI框架中构建视图都要用到的三个最基本的控件。
拉维
2019/08/12
7.9K0
文本、图片和按钮在Flutter中怎么用
如何在 SwiftUI 中创建条形图
条形图以矩形条的形式呈现数据的类别,其宽度和高度与它们表示的值成比例。本文将展示如何创建一个垂直条形图,其中矩形的高度将代表每个类别的值。
Swift社区
2022/12/12
5.4K0
如何在 SwiftUI 中创建条形图
SwiftUI:猜国旗项目 堆叠按钮
我们将通过构建基本的UI结构来启动我们的应用程序,这将会是两个标签告诉用户该做什么,然后是三个显示三个世界国家的国旗按钮。
韦弦zhy
2020/03/27
1K0
Python中将变量按行写入txt文本中
在'w'写入模式下,当我们下次写入变量时,会覆盖原本txt文件的内容,这肯定不是我们想要的。TXT有一个追加模式'a',可以实现多次写入:
py3study
2020/01/10
7.5K0
Python中将变量按行写入txt文本中
flash中按钮添加链接打开网页
btn :按钮实例名; _blank:打开方式(新窗口打开) fn :函数名称;
2021/11/08
1.3K0
如何在 SwiftUI 中显示二维码
Swift社区是由 Swift 爱好者共同维护的公益组织,我们在国内以微信公众号的运营为主,我们会分享以 Swift实战、SwiftUl、Swift基础为核心的技术内容,也整理收集优秀的学习资料。
Swift社区
2022/04/04
1.9K0
Flutter的文本、图片和按钮使用
像视图数据流转机制、底层渲染方案、视图更新策略等知识,都是构成一个UI框架的根本,看似枯燥,却往往具有最长久的生命力。
JavaEdge
2023/07/09
7060
Flutter的文本、图片和按钮使用
SwiftUI TextField进阶——格式与校验
SwiftUI的TextField可能是开发者在应用程序中最常使用的文本录入组件了。作为UITextField(NSTextField)的SwiftUI封装,苹果为开发者提供了众多的构造方法和修饰符以提高其使用的便利性、定制性。但SwiftUI在封装中也屏蔽了不少的高级接口和功能,增加了开发者实现某些特定需要的复杂性。本文为【SwiftUI 进阶】系列文章中的一篇,在本文中,我将介绍如何在TextField中实现如下功能:
东坡肘子
2022/07/28
8.3K0
SwiftUI TextField进阶——格式与校验
如何在Linux中删除软链接
符号链接(也称为软链接或符号链接)在 Linux 中是一种特殊类型的文件,可用作另一个文件的快捷方式。 你可以使用 ln 命令创建软链接。但是怎么删除呢? 在 Linux 中没有专门用于删除符号链接的特殊命令。你可以使用 rm 命令,该命令也用于删除文件和目录。 rm symbolic_link_name 你也可以在此处使用取消链接命令。不要用它的名字。它不仅用于删除链接;它也可以删除文件。 unlink symbolic_link_name 使用 rm 命令删除符号链接 你所要做的就是为命令提供链接路
入门笔记
2022/11/14
13.5K1
如何在Linux中删除软链接
如何在 Python 中搜索和替换文件中的文本?
让我们看看如何在文本文件中搜索和替换文本。首先,我们创建一个文本文件,我们要在其中搜索和替换文本。将此文件设为 Haiyong.txt,内容如下:
海拥
2021/10/20
16.4K0
linux中将文本附加到文件末尾
在 Linux 中使用配置文件时,有时需要将诸如配置参数之类的文本附加到现有文件中。追加只是意味着将文本添加到文件的末尾或底部。 使用>>运算符附加文本 >>操作者输出重定向到一个文件,如果该文件不存在,则创建,但如果它存在,则输出将在文件的末尾追加。 例如,你可以使用echo 命令将文本附加到文件的末尾 # echo "rumenz.com" >> /root/rumenz.txt 或者,你可以使用 printf命令(不要忘记使用\n字符添加下一行) # printf "rumenz.com\n" >>
玖柒的小窝
2021/10/21
1.6K0
linux中将文本附加到文件末尾
在 Linux 中使用配置文件时,有时需要将诸如配置参数之类的文本附加到现有文件中。追加只是意味着将文本添加到文件的末尾或底部。 使用>>运算符附加文本 >>操作者输出重定向到一个文件,如果该文件不存在,则创建,但如果它存在,则输出将在文件的末尾追加。 例如,你可以使用echo 命令将文本附加到文件的末尾 # echo "rumenz.com" >> /root/rumenz.txt 或者,你可以使用 printf命令(不要忘记使用\n字符添加下一行) # printf "rumenz.com\n" >
入门笔记
2022/06/02
1.2K0
flutter - 如何在Dart/Flutter中将某些元素从一个Map复制到新Map中?
由于keys返回 map 键的Iterable<String>,因此您可以使用where方法检查所需的键,然后可以基于旧 map 值填充值。
徐建国
2021/08/30
1.4K0
按钮式超链接代码
其中, 鼠标经过超链接的时候 设置的样式 。padding属性意在通过内边距微调来改变文字位置
全栈程序员站长
2022/09/18
1.4K0
按钮式超链接代码
Linux如何在Bash中将标准错误stderr重定向到stdout标准输出
将命令的输出重定向到文件或将其通过管道传递到另一个命令时,你可能会注意到错误消息已打印在屏幕上。 在Bash和其他Linux Shell中,执行程序时,它使用三个标准I/O流。每个流由一个数字文件描述符表示: 0-stdin,标准输入流。 1 -stdout,标准输出流。 2 -stderr,标准错误流。 文件描述符只是代表打开文件的数字。 输入流通常通过在键盘上输入来向程序提供信息。 程序输出进入标准输出流,错误消息进入标准错误流。默认情况下,输入流和错误流都打印在屏幕上。 重定向标准输出流 重定向是一种
入门笔记
2022/06/02
3.8K0
捕获Android文本中链接点击事件
Android中的TTextView很强大,我们可以不仅可以设置纯文本为其内容,还可以设置包含网址和电子邮件地址的内容,并且使得这些点击可以点击。但是我们可以捕获并控制这些链接的点击事件么,当然是可以的。
技术小黑屋
2018/09/04
1.9K0
点击加载更多

相似问题

如何在SwiftUI中超链接按钮?

17

如何在SwiftUI导航链接中包装按钮?

12

如何在SwiftUI的按钮中添加导航按钮链接?

118

如何在SwiftUI中将NavigationLink显示为按钮

92

如何在SwiftUI中将图像设置为按钮?

20
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档