gpt4 book ai didi

ios - 字符串中的内联按钮和/或文本字段,使用 Swift 包装与文本相同的文本

转载 作者:行者123 更新时间:2023-12-04 13:27:24 25 4
gpt4 key购买 nike

这更多是关于如何实现它的问题,而不是具体的解决方案。我想要一个标签,允许按钮和文本字段内联并换行到下一行。一个例子是 iOS 快捷方式应用程序,您可以在其中输入与文本相同的块,并且文本字段沿同一行换行。它是一个文本字段,因为有一个插入符号。
iOS shortcuts app
iOS shortcuts app whilst editing
在高层次上,它可能看起来像这样:
enter image description here
每个 View 都遵循该行并在需要时换行到下一个 View 。
我最初考虑将 NSAttributedString 与样式化的链接一起使用,并且该链接既可以充当按钮,也可以打开文本字段进行输入。我尝试了这个并得到了一些有用的东西,但它不像文本字段在文本中的iOS快捷方式应用程序。我也考虑过使用 textkit,但我还没有深入了解,因为我不确定这是正确的方法。
感谢您提供任何想法或解决方案。
编辑
我想过另一种方法来实现这一点,但我也不知道它是否可行。这个想法是使用文本字段的集合 View 。一些文本字段将共享相同的 LayoutManager,以便文本跨文本字段共享。我必须计算要创建多少个文本字段,以便它们沿着 collectionView 向下流动
enter image description here
在图像中,Label 1由 1 个已禁用编辑的文本字段组成。 TextField 1由 3 个启用编辑的文本字段组成,三个文本字段将共享相同的 LayoutManager。 Label 2由 2 个带有共享布局管理器的文本字段组成,但无法编辑。
使用这种方法意味着计算为每个“块”(标签或文本字段)创建多少文本字段,并在每次内容更改时更新它。使用这种方法,我只考虑标签和文本字段,但可以在其他时间添加按钮。
我刚刚开始,但意识到共享布局管理器会禁用编辑,所以我不知道这是否可行。
谢谢

最佳答案

这肯定不是一项微不足道的任务,我认为没有现成的解决方案。
使用 NSLayoutManager您可以计算文本每行/字符的框架,然后根据这些框架禁止触摸,并在可编辑文本下添加背景。
您必须使用 UITextView ,因为你需要禁止用户选择部分文本,你可以使用类似 willChangeSelectionFromCharacterRange:toCharacterRange: 的东西来做到这一点。委托(delegate)方法,以及你需要的方法 shouldChangeTextIn:也禁止删除不可编辑的文本。

关于ios - 字符串中的内联按钮和/或文本字段,使用 Swift 包装与文本相同的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67388508/

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