@bsky.app/react-native-uitextview

中文文档
2.7.2发布于 2026/11/03MITTypeScriptESM + CJS零依赖构建来源已验证近 30 天下载 12.5万

本地反应的 UITextView

中文使用文档
文档目录10 节
  1. 关于支持此库的说明
  2. 安装
  3. 限制
  4. 使用量
  5. 选择检测
  6. 使用量
  7. 事件属性
  8. 页:1
  9. 捐款
  10. 许可证

image

关于支持此库的说明

这个图书馆是专门为 蓝斯基社交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。 。 。 .

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。 。 。 .

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 回调到 添加到链接.

<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>

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

<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 调用. 这将在用户选择或取消文本时提供实时通知, 删除 需要通过投票进行筛选.

使用量

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可能提供的捐款 影响Bluesky部分的正常运作,不会合并.

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

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

许可证

Bluesky Social PBC致力于软件专利不侵犯承诺. 详情见 原公告。 。 。 .


制造的 创建- 反应- 本土- 图书馆

版本与发布记录

@bsky.app/react-native-uitextview 共发布 8 个版本,首次发布于 2026/07/24;过去 12 个月发布了 8 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
2.7.2latest2026/11/035 天前
2.7.12026/08/172 个月前
2.7.02026/08/132 个月前
2.6.02026/08/043 个月前
2.5.02026/07/273 个月前
2.4.12026/07/243 个月前

关于 @bsky.app/react-native-uitextview 的常见问题

@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 和提交记录判断。