首页
/ JetBrains Compose Multiplatform 1.8.0-beta02 版本发布:iOS 文本输入与跨平台改进

JetBrains Compose Multiplatform 1.8.0-beta02 版本发布:iOS 文本输入与跨平台改进

2025-06-02 08:13:38作者:袁立春Spencer

JetBrains Compose Multiplatform 是一个基于 Kotlin 的声明式 UI 框架,允许开发者使用相同的代码库构建跨平台应用,包括 Android、iOS、桌面和 Web。最新发布的 1.8.0-beta02 版本带来了多项重要改进,特别是在 iOS 平台的文本输入体验和跨平台稳定性方面。

iOS 平台显著增强

本次更新为 iOS 平台带来了多项关键改进,显著提升了文本输入体验:

  1. 完整键盘访问支持:现在当 iOS 设备启用"完整键盘访问"功能时,Compose 应用能够正确处理文本输入事件,这对于使用外接键盘的用户尤为重要。

  2. 原生触控行为BasicTextField 组件现在支持与原生 iOS 应用一致的点按、长按和多点触控行为,包括:

    • 单次点击定位光标
    • 长按触发文本选择菜单
    • 双击选择单词
    • 三次点击选择段落
  3. 放大镜功能:文本编辑时现在会显示原生 iOS 风格的放大镜,帮助用户更精确地定位光标位置,这在处理长文本时特别有用。

跨平台问题修复

通用修复

  • 修复了带有尾部图标的 TextField 在宽度过窄时可能抛出 IllegalArgumentException 的问题
  • 解决了在 TextField 中拖动选择文本同时进行编辑(如按退格键)时可能导致的崩溃问题

iOS 专项修复

  • 文本菜单弹出行为优化,修复了"全选"操作后菜单意外弹出的问题
  • 滚动相关修复:
    • 解决了滚动取消但回弹效果未完成的冻结问题
    • 修复了触发下拉刷新时回弹动画冻结的情况
  • 视图层级修复:
    • 确保根 Compose 画布能够无动画重新调整大小
    • 修复了对话框层可能不显示的问题
    • 解决了 Compose 控制器重新进入视图层级时意外添加额外 MetalView 的情况
  • 文本处理改进:
    • 修复了某些 RTL 或变音符号字符的删除问题
    • 改进了 BasicTextField 应用 OutputTransformation 时的编辑行为
    • 修正了文本删除操作的撤销行为

桌面平台改进

  • 安全文本字段(SecureTextField)现在只临时显示第一个字符的问题已修复
  • 修复了输入复合字符(如韩文字符ㅀ)时,TextFieldState 变化未能正确报告给转换器的问题
  • 解决了从非事件分发线程调用 Snapshot.sendApplyNotifications 可能导致的死锁
  • macOS 窗口阴影显示问题修复
  • 修复了包含 material3 依赖时的 ProGuard 任务失败问题

Web 平台优化

  • 修复了使用触摸板并按住 Shift 键时的水平滚动问题
  • 增强了在不安全上下文中运行时的健壮性,避免因 Web Clipboard API 不可用而崩溃
  • 改进了制表符处理,现在会将其替换为空格以避免显示为 tofu 符号
  • 触摸事件处理优化,Modifier.detectTransformGestures 现在能正确处理缩放和旋转手势

导航组件改进

  • 修复了 JS 目标平台的导航问题
  • 优化了 Web 导航路由参数编码,提升用户体验
  • 新增标志支持禁用 iOS 返回手势检测
  • 修复了自定义进入/退出动画时默认弹出动画的问题

依赖项更新

本次更新基于以下 Jetpack Compose 库版本构建:

  • Runtime 1.8.0-rc02
  • UI 1.8.0-rc02
  • Foundation 1.8.0-rc02
  • Material 1.8.0-rc02
  • Material3 1.3.1

同时更新了相关生命周期和导航库,为开发者提供了更稳定和功能丰富的开发体验。

这个 beta 版本标志着 JetBrains Compose Multiplatform 在跨平台 UI 开发领域又向前迈进了一步,特别是在提升 iOS 平台原生体验方面取得了显著进展。开发者现在可以更自信地构建具有原生质感的跨平台应用,而无需牺牲开发效率或代码共享的优势。

登录后查看全文
热门项目推荐
相关项目推荐

项目优选

收起
ohos_react_nativeohos_react_native
React Native鸿蒙化仓库
C++
176
261
RuoYi-Vue3RuoYi-Vue3
🎉 (RuoYi)官方仓库 基于SpringBoot,Spring Security,JWT,Vue3 & Vite、Element Plus 的前后端分离权限管理系统
Vue
860
511
ShopXO开源商城ShopXO开源商城
🔥🔥🔥ShopXO企业级免费开源商城系统,可视化DIY拖拽装修、包含PC、H5、多端小程序(微信+支付宝+百度+头条&抖音+QQ+快手)、APP、多仓库、多商户、多门店、IM客服、进销存,遵循MIT开源协议发布、基于ThinkPHP8框架研发
JavaScript
93
15
openGauss-serveropenGauss-server
openGauss kernel ~ openGauss is an open source relational database management system
C++
129
182
openHiTLSopenHiTLS
旨在打造算法先进、性能卓越、高效敏捷、安全可靠的密码套件,通过轻量级、可剪裁的软件技术架构满足各行业不同场景的多样化要求,让密码技术应用更简单,同时探索后量子等先进算法创新实践,构建密码前沿技术底座!
C
259
300
kernelkernel
deepin linux kernel
C
22
5
cherry-studiocherry-studio
🍒 Cherry Studio 是一款支持多个 LLM 提供商的桌面客户端
TypeScript
596
57
CangjieCommunityCangjieCommunity
为仓颉编程语言开发者打造活跃、开放、高质量的社区环境
Markdown
1.07 K
0
HarmonyOS-ExamplesHarmonyOS-Examples
本仓将收集和展示仓颉鸿蒙应用示例代码,欢迎大家投稿,在仓颉鸿蒙社区展现你的妙趣设计!
Cangjie
398
371
Cangjie-ExamplesCangjie-Examples
本仓将收集和展示高质量的仓颉示例代码,欢迎大家投稿,让全世界看到您的妙趣设计,也让更多人通过您的编码理解和喜爱仓颉语言。
Cangjie
332
1.08 K