RichEditorView
这是使用 WKWebView 的 Swift 5 版本,它基于 cjwirth/RichEditorView 并添加了一些强大的功能。
目录
- 使用说明
- 新增功能
- 待办事项
- 额外说明
- 致谢和许可证
使用说明
您只能通过 Cocoapods 导入它
pod "RichEditorViewSwift"
import RichEditorViewSwift
此处不包括单元测试。您可以在 cjwirth/RichEditorView 中找到它。
新增功能
大多数功能与 父仓库 中的一样,但我添加了一些其他功能和一些示例中的指示。其他功能可以在 cjwirth 的仓库中找到。
- 复选框
- 离线与基于服务器图像和视频功能
- 表格(具有编辑功能的 编辑功能)
以下编辑功能假设您有一个属性 let editorView = RichEditorView()
- 您可以通过调用
editorView.getSelectedText
获取选中文本文本 - RichEditorView 中的 runJS 和其他功能在执行上与 cjwirth 的不完全一样。这是由于 WKWebView 的 JavaScript 桥接;与 WK 相比,UIWebView 返回一个字符串。为了运行 JavaScript 和其他功能并返回
Void
,您必须做以下操作
editorView.getSelectedText() { r in
// r is just a variable.
}
或者
editorView.runJS("document.getElementById('editor')") { r in
print(r)
}
注意:这些操作可能并发执行。这可能是由于WKWebView的内存效率特性。但我不完全确定这是否属实,这只是我的观察。 这是因为它的函数是:public func getSelectedText(handler: @escaping (String) -> Void)
。注意 (String) -> Void
。变量 r
是JavaScript返回的字符串值。
- 插入链接的功能也发生了变化。HTML中的正常标签布局如下:
<a href="https://github.com/" title="GitHub">用户看到的文本</a>
。当你插入一个链接时,需要以下参数:href和文本。如果存在范围选择,将清除范围选择中的文本! - 暗黑模式通过CSS和HTML文件实现。
待办事项
- 如果您的框架未设置为视图控制器视图的宽度,可能会存在某些问题。建议使用additionalSafeAreaInsets
CSS在用户最初点击编辑器视图时会扩展的问题 - 找到维护Pod和Carthage包的人
- 分别创建iOS 12.X和iOS >13.X的包
- 重构iOS 12.X的库栏
致谢与许可
许可协议为BSD-3条款
cjwirth - iOS-RichEditorView原作者
C. Bess - WKWebView支持
从YoomamaFTW分叉而来