如何用按钮触发UITextView中UIKit的格式面板?

问题描述 投票:0回答:1

我正在尝试为我的 SwiftUI 应用程序实现一个富文本编辑器。由于 SwiftUI 的

TextEditor
缺少文本格式选项,因此我选择使用 UIKit 的
UITextView
来代替。到目前为止,一切进展顺利:我已成功使
UITextView
在我的 SwiftUI 视图中可用。

我的问题是,我想使用 WWDC24“UIKit 中的新增功能”会话中引入的新格式面板来编辑我的

UITextView
中的文本格式。

首先,我使用以下代码行启用了格式选项:

// textEditorView is the UITextView
textEditorView.allowsEditingTextAttributes = true

这会在长按或选择文本后出现的菜单中添加“格式”选项 - 到目前为止,一切顺利!

Format option Format panel

我的问题是:如何才能通过按下按钮来显示此格式面板表,而不是仅通过长按文本来访问它,例如在 Apple Notes 应用程序中?

Format button in Notes Format panel in Notes

我尝试手动创建一个

UITextFormattingViewController
并在按下工具栏按钮时将其呈现在工作表中,但这会导致一个不起作用的格式面板,我必须自己实现它的功能。

理想情况下,我想显示默认的系统格式面板,而不是创建自定义面板并必须自己实现所有格式设置功能。长按出现的系统格式面板工作完美;我只是还没有找到通过按下按钮来触发它的方法。

关于如何实现这一目标有什么想法吗?我非常感谢您的帮助! :)

swift swiftui uikit uitextview textkit
1个回答
0
投票

可以在

UITextView
中调试看看什么是viewcontroller进行格式化:

let vc = UITextFormattingViewController()
self.present(vc, animated: true)
© www.soinside.com 2019 - 2024. All rights reserved.