我正在尝试为我的 SwiftUI 应用程序实现一个富文本编辑器。由于 SwiftUI 的
TextEditor
缺少文本格式选项,因此我选择使用 UIKit 的 UITextView
来代替。到目前为止,一切进展顺利:我已成功使 UITextView
在我的 SwiftUI 视图中可用。
我的问题是,我想使用 WWDC24“UIKit 中的新增功能”会话中引入的新格式面板来编辑我的
UITextView
中的文本格式。
首先,我使用以下代码行启用了格式选项:
// textEditorView is the UITextView
textEditorView.allowsEditingTextAttributes = true
这会在长按或选择文本后出现的菜单中添加“格式”选项 - 到目前为止,一切顺利!
我的问题是:如何才能通过按下按钮来显示此格式面板表,而不是仅通过长按文本来访问它,例如在 Apple Notes 应用程序中?
我尝试手动创建一个
UITextFormattingViewController
并在按下工具栏按钮时将其呈现在工作表中,但这会导致一个不起作用的格式面板,我必须自己实现它的功能。
理想情况下,我想显示默认的系统格式面板,而不是创建自定义面板并必须自己实现所有格式设置功能。长按出现的系统格式面板工作完美;我只是还没有找到通过按下按钮来触发它的方法。
关于如何实现这一目标有什么想法吗?我非常感谢您的帮助! :)
可以在
UITextView
中调试看看什么是viewcontroller进行格式化:
let vc = UITextFormattingViewController()
self.present(vc, animated: true)