RichTextKit 1.2-b.1版本发布:原生类型支持与段落样式增强
2025-07-05 17:38:52作者:裴锟轩Denise
RichTextKit是一个专注于富文本编辑的Swift框架,它为开发者提供了丰富的工具和组件来构建强大的文本编辑体验。在最新发布的1.2-b.1版本中,RichTextKit迈出了重要一步,开始转向更多地使用原生类型而非自定义类型,这一变化显著提升了框架的简洁性和功能性。
版本核心改进
本次更新的核心在于对NSParagraphStyle及其嵌套类型的全面支持。通过这一改进,开发者现在可以使用统一的函数、选择器、步进器和开关来获取、设置、选择、调整和切换以下段落样式属性:
- 文本对齐(alignment)
- 截断紧缩(allowsDefaultTighteningForTruncation)
- 基础书写方向(baseWritingDirection)
- 默认制表符间隔(defaultTabInterval)
- 首行缩进(firstLineHeadIndent)
- 头部缩进(headIndent)
- 连字符因子(hyphenationFactor)
- 换行模式(lineBreakMode)
- 换行策略(lineBreakStrategy)
- 行高倍数(lineHeightMultiple)
- 行间距(lineSpacing)
- 最大行高(maximumLineHeight)
- 最小行高(minimumLineHeight)
- 段落间距(paragraphSpacing)
- 段落前间距(paragraphSpacingBefore)
- 制表位(tabStops)
- 尾部缩进(tailIndent)
- 默认连字符使用(usesDefaultHyphenation)
技术细节解析
新增功能亮点
-
原生类型支持增强:
- 新增了
NSMutableParagraphStyle的defaultMutable构建器,简化了默认段落样式的创建 - 为
NSParagraphStyle添加了defaultPickerValues(for:)和defaultStepperSteps(for:)函数,提供了标准的UI组件值范围
- 新增了
-
图标与默认值支持:
NSParagraphStyle.KeyPath现在包含defaultIcon属性,为每种样式属性提供了直观的视觉表示- 新增的
defaultPickerValues和defaultStepperInterval属性为UI组件提供了合理的默认配置
-
文本对齐增强:
NSTextAlignment新增了defaultIcon属性,能够动态生成表示不同对齐方式的图标
-
上下文与组件集成:
RichTextContext新增了paragraphStyleValue(for:)和paragraphStyleValueBinding(for:)函数,简化了段落样式的访问和绑定RichTextViewComponent新增了基于键路径的样式操作函数,包括获取、设置和逐步调整样式值
视图组件增强
-
选择器(Picker):
- 新增了基于段落样式值的初始化方法,支持快速创建针对特定样式属性的选择器
-
步进器(Stepper):
- 新增了基于段落样式值的初始化方法,支持对数值型样式属性进行精确调整
-
开关(Toggle):
- 新增了基于段落样式值的初始化方法,适用于布尔类型的样式属性
废弃内容说明
随着对原生类型支持的增强,框架中部分自定义类型已被标记为废弃:
-
RichTextAlignment:
- 所有相关类型和功能已被废弃,建议使用原生的
NSTextAlignment和相关段落样式功能替代
- 所有相关类型和功能已被废弃,建议使用原生的
-
RichTextLine:
- 所有相关类型和功能已被废弃,新的段落样式功能提供了更全面的行相关属性控制
技术意义与优势
这一版本的改进带来了几个显著优势:
-
代码精简:
- 通过使用原生类型替代自定义类型,框架代码量显著减少,同时功能更加强大
-
一致性提升:
- 统一的API设计使得不同样式属性的操作方式保持一致,降低了学习成本
-
扩展性增强:
- 基于键路径的设计使得未来添加对新样式属性的支持更加容易
-
性能优化:
- 直接使用原生类型减少了类型转换开销,提升了运行效率
对于开发者而言,这些改进意味着能够以更简洁的代码实现更丰富的文本编辑功能,同时获得更好的性能和更一致的开发体验。
登录后查看全文
热门项目推荐
相关项目推荐
atomcodeClaude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed. Get StartedRust0231
GLM-5.2智谱开源 GLM-5.2,这是针对长文本任务的最新旗舰模型。相较于前代产品 GLM-5.1,它在长文本任务处理能力上实现了显著飞跃,并且首次在稳定的 100 万 token 上下文中提供这一能力。Jinja00
JoyAI-VL-Interaction-Preview京东开源首个开源、视觉驱动的实时交互模型——它能实时监控视频流,并自主决定何时发言、保持沉默或委托任务。Jinja00
cann-learning-hubCANN 学习中心仓,支持在线互动运行、边学边练,提供教程、示例与优化方案,一站式助力昇腾开发者快速上手。Jupyter Notebook0149
kornia🐍 空间人工智能的几何计算机视觉库Python02
PaddleParallel Distributed Deep Learning: Machine Learning Framework from Industrial Practice (『飞桨』核心框架,深度学习&机器学习高性能单机、分布式训练和跨平台部署)C++02
项目优选
收起
暂无描述
Dockerfile
781
5.11 K
本项目是CANN提供的transformer类大模型算子库,实现网络在NPU上加速计算。
C++
891
2.05 K
openEuler内核是openEuler操作系统的核心,既是系统性能与稳定性的基石,也是连接处理器、设备与服务的桥梁。
C
471
473
本项目是CANN提供的神经网络类计算算子库,实现网络在NPU上加速计算。
C++
708
1.42 K
deepin linux kernel
C
32
16
Ascend Extension for PyTorch
Python
762
973
JiuwenSwarm 是一款基于openJiuwen开发的智能AI Agent,它能够将大语言模型的强大能力,通过你日常使用的各类通讯应用,直接延伸至你的指尖。
Python
2.27 K
680
本项目是CANN提供的数学类基础计算算子库,实现网络在NPU上加速计算。
C++
1.11 K
1.15 K
本仓库是 Flutter SDK 与 Flutter Engine 的 OpenHarmony 适配版本,由 CPF-Flutter 团队维护。开发者可使用熟悉的 Flutter 技术栈开发 OpenHarmony 应用,3.35.7 及以后的适配版本可基于本仓库源码构建支持 OpenHarmony 的 Flutter Engine。
Dart
1.04 K
272
Claude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed.
Get Started
Rust
2.16 K
228