概述

#

TextInputClient 接口中添加了三个方法:showToolbarinsertTextPlaceholderremoveTextPlaceholder,以允许 iOS 14 的 Scribble 功能插入和删除文本占位符以及显示工具栏。

背景

#

从 iOS 14 开始,iPad 在使用 Apple Pencil 时支持 Scribble 功能。此功能允许用户使用铅笔与文本字段进行交互,以添加、删除、选择和修改文本。

变更说明

#

在原生的文本小部件中,当用户在运行 iOS 14 或更高版本的 iPad 上使用铅笔选择文本时,会显示文本工具栏。为了复制此行为,平台会发送一个名为 TextInputClient.showToolbartextInput 通道消息。这会通知 Dart 代码应该显示工具栏。

当用户按住铅笔时,文本中会显示一个视觉间隙,以便用户有额外的空间进行书写。为了复制此行为,平台会发送名为 TextInputClient.insertTextPlaceholderTextInputClient.removeTextPlaceholdertextInput 通道消息。多行文本输入应具有提供垂直空间的占位符,而单行输入应提供水平空间。

迁移指南

#

如果您之前实现了 TextEditingClient,则必须重写 showToolbarinsertTextPlaceholderremoveTextPlaceholder,以支持这些 Scribble 功能或提供一个空实现。

为了迁移,请实现 showToolbarinsertTextPlaceholderremoveTextPlaceholder

迁移前的代码

dart
class MyCustomTextInputClient implements TextInputClient {
  ...
}

迁移后的代码

dart
class MyCustomTextInputClient implements TextInputClient {
  ...
  @override
  void showToolbar() {
    ...
  }
  
  @override
  void insertTextPlaceholder(Size size) {
    ...
  }
  
  @override
  void removeTextPlaceholder() {
    ...
  }
}

时间线

#

已发布版本:2.9.0-1.0.pre
稳定版本: 2.10

参考资料

#

API 文档

相关问题

相关 PR