# @bsky\.app/react-native-uitextview 中文文档

规范地址：https://npmcn.com/package/%40bsky.app/react-native-uitextview/

版本：2\.7\.2
npm 元数据更新时间：2026-11-02T18:33:03.286Z
中文译文更新时间：2026-11-08T17:16:34.576Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40bsky.app/react-native-uitextview
原文对照：https://npmcn.com/package/%40bsky.app/react-native-uitextview/?lang=original
项目主页：https://github.com/bluesky-social/react-native-uitextview#readme
源码仓库：https://github.com/bluesky-social/react-native-uitextview

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：226 kB，112 个文件
- 模块格式：ESM + CJS
- TypeScript 类型：包内自带
- 运行依赖：0 个
- peer 依赖：react \*，react-native \>=0\.81\.5
- 首次发布：2026-07-24T12:57:09.495Z
- 最新版本发布：2026-11-02T18:33:02.856Z
- 近 30 天下载量：124861（2026-10-09 至 2026-11-07，npm 官方下载统计）
- 已发布版本数：8（近 12 个月 8 个）

## 中文简介

本地反应的 UITextView

## 安装

```sh
npm install @bsky.app/react-native-uitextview
```

也可以使用：`pnpm add @bsky.app/react-native-uitextview`、`yarn add @bsky.app/react-native-uitextview`、`bun add @bsky.app/react-native-uitextview`

## README

![image](https://haileyok.com/content/images/size/w1920/2024/01/IMG_4730.jpeg)

### 关于支持此库的说明

这个图书馆是专门为 [蓝斯基社交App](https://github.com/bluesky-social/social-app)。支持此库 这在很大程度上取决于两个因素:

1.  我们是否有时间实施一个特征或解决一个问题?
2.  这个特征对布鲁斯基有多重要,或者它是否解决了布鲁斯基存在的问题?

如果你想在这个库里看到一些不存在的特征 可能(或肯定)没有大大改善 布鲁斯基的经验,请随意 提交公关! 当然,你也应该觉得自由 提出专题建议或 错误报告也一样,只要有空闲时间,就可能开展工作。 璶笵 这可能需要一些时间.

谢谢!

# 反应原生 UITextView

这个 `Text` 更接近于执行 `UILabel` (原始内容存档于2018-03-31). On iOS. 不幸的是,这阻止了 用户可以突出显示用于选择的文本。 唯一可能的复制行为是复制 整个文本块.

`UITextView` 不过,允许用户突出显示文本块中供复制的部分内容, 翻译,或其他本地能力.

反应本地 UITextView 利用 `UITextView` 允许两种类型的复制 在iOS上:突出显示并复制或当前, `UILabel` 完全复制的行为 文本块.

## 安装

> \[尖叫声\] 这个支持旧 React 原生架构的软件包的最终版本是 `1.4.0`。所有版本 `2.x` 财务报告和审定财务报表 高支持只支持新架构. 不幸的是,我没有时间保持对这两个架构的支持. 版本 `1.4.0` 然而,除了基地中仍然缺失的特征之外,还是稳定的 `<Text>` 组件,应 任务与 `2.x` 和更高的.

> \[注\] 版本 2.4.0 `@bsky.app/react-native-uitextview` 并且支持反应土著0.81.5和较新的. React Industrial 的新存档文本布局 API 可以在发布之间更改; 兼容性问题最有可能出现 内 `RNUITextViewShadowNode.cpp`。 。 。 .

```sh
yarn add @bsky.app/react-native-uitextview
cd ios
pod install
```

## 限制

反应原生 UITextView 大部分可以用作倒置替换 现有区块 `Text`然而,有一些限制:

-   少数风格尚未实施,但所有风格都应该是可能的.

## 使用量

此组件的用法与底部 React Native 相同 `Text` 组件。 这个 可导入为 `Text` 从 `@bsky.app/react-native-uitextview`,所以在大多数情况下你只 需要替换当前 `Text` 导入此项.

除了上面的几处限制之外 你所有的风格和道具 用于 `Text` 应该工作。 在非iOS平台上, Base React Industrial `Text` 将永远使用。 在 iOS 上, 基数 React 原生 `Text` 将使用组件 除非 `selectable` 编辑 `uiTextView` 道具都一样 `true`。 。 。 .

```tsx
import {UITextView as Text} from '@bsky.app/react-native-uitextview'

function SomeView() {
  return (
    <View style={{flex: 1}}>
      <Text
        style={{color: 'green', lineHeight: 20, fontSize: 14}}
        selectable
        uiTextView>
        This is some highlightable text! It uses UITextView
      </Text>
      <Text
        style={{color: 'blue', lineHeight: 20, fontSize: 14}}
        selectable // Note we do not add the uiTextView prop
      >
        This text still uses the base Text component. It can only be copied.
      </Text>
      <Text
        style={{color: 'red', lineHeight: 20, fontSize: 14}}
        uiTextView // Note we do not add the selectable prop
      >
        This text still uses the base Text component. It can't be highlighted or
        copied at all.
      </Text>
    </View>
  )
}
```

编号 `UITextView` 支持组件。 例如,如果您有样式 仅适用于案文的一部分,或 `onPress` 回调到 添加到链接.

```tsx
<Text style={{fontSize: 14}} selectable uiTextView>
  This is some text that's highlightable with{' '}
  <Text
    style={{color: 'blue', textDecorationLine: 'underline'}}
    onPress={() => Linking.openURL('https://google.com')}>
    a link
  </Text>
  .
</Text>
```

内含视图也得到支持并参与文本的测量和包扎:

```tsx
<Text selectable uiTextView>
  Selectable text{' '}
  <View
    style={{
      paddingHorizontal: 5,
      paddingVertical: 2,
      borderRadius: 999,
      backgroundColor: '#e5e7eb',
    }}>
    <Text style={{fontSize: 12}}>1/3</Text>
  </View>
</Text>
```

可压缩 `UITextView` 文本使用与圆形灰色相加的 原生反应 `Text`。亮点立即出现,在 在快速水龙头上至少130毫秒,并覆盖属于非受压的筑巢跨度 同一可按的父关系。 设定 `suppressHighlighting` 关闭视觉 反馈而不造成残疾 `onPress` 或者说 `onLongPress`。 。 。 .

## 选择检测

`UITextView` 通过 `onSelectionChange` 调用. 这将在用户选择或取消文本时提供实时通知, 删除 需要通过投票进行筛选.

### 使用量

```tsx
import {UITextView as Text} from '@bsky.app/react-native-uitextview'

function SelectableText() {
  const [selectedText, setSelectedText] = React.useState('')

  return (
    <Text
      selectable
      uiTextView
      onSelectionChange={event => {
        const {start, end} = event.nativeEvent
        // Extract selected text from your content string
        const text = content.substring(start, end)
        setSelectedText(text)
      }}>
      Selectable text content
    </Text>
  )
}
```

### 事件属性

这个 `onSelectionChange` 事件提供以下属性:

-   `nativeEvent.target` - 视图标签标识符
-   `nativeEvent.start` - 选定范围的起始索引(基于0)
-   `nativeEvent.end` - 选定范围的终点指数(基于0,独家)

### 页:1

-   用多字节字符(如阿拉伯语、emojis)正确工作
-   仅在使用时在 iOS 上可用 `uiTextView={true}`
-   即使选择被清除,事件也会起火(`start === end`,包括: 当库在文本视图外的自带上清除时
-   事件引发了每次选尖调整——拖取选题 控件以扩展几个字符会多次开火。 消费者驾驶 这场赛事需要花费很多钱

## 捐款

捐款总是受到欢迎和鼓励。 但请注意,可能需要: 公关审查并合并的时间,可能根本不可能合并。 这个图书馆 创建是为了支持在 [蓝斯基社交App](https://github.com/bluesky-social/social-app)可能提供的捐款 影响Bluesky部分的正常运作,不会合并.

一些我们没有时间适当执行的重大贡献的想法:

-   对所有 RN 样式的全力支持
-   改善无障碍环境

## 许可证

Bluesky Social PBC致力于软件专利不侵犯承诺. 详情见 [原公告](https://bsky.social/about/blog/10-01-2025-patent-pledge)。 。 。 .

* * *

制造的 [创建- 反应- 本土- 图书馆](https://github.com/callstack/react-native-builder-bob)

## 常见问题

### @bsky\.app/react-native-uitextview 是什么？

本地反应的 UITextView

### 如何安装 @bsky\.app/react-native-uitextview？

在项目目录运行 npm install @bsky\.app/react-native-uitextview，或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖：react（\*）、react-native（\>=0\.81\.5）。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖，Yarn 需要手动安装。

### @bsky\.app/react-native-uitextview 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### @bsky\.app/react-native-uitextview 支持 ESM 还是 CommonJS？

同时提供 ES Module 与 CommonJS 入口，import 和 require\(\) 都可以使用，打包工具会自动选择合适的版本。

### @bsky\.app/react-native-uitextview 可以商用吗？

@bsky\.app/react-native-uitextview 使用 MIT 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### @bsky\.app/react-native-uitextview 的下载量有多少？

根据 npm 官方下载统计，@bsky\.app/react-native-uitextview 在 2026/10/09 – 2026/11/07 这 30 天内被下载 124,861 次，日均约 4,162 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @bsky\.app/react-native-uitextview 还在维护吗？

最新版本 2\.7\.2 发布于 2026/11/03（5 天前）；至今共发布 8 个版本，其中过去 12 个月发布了 8 个；首次发布于 2026/07/24。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

