gpt4 book ai didi

ios - 制作多行,使用 React-Native 扩展 TextInput

转载 作者:IT王子 更新时间:2023-10-29 07:57:35 24 4
gpt4 key购买 nike

我正在开发一个 react-native 应用程序,需要一个 TextInput,它具有与 iOS 上“消息”应用程序中的 TextView 类似的功能——它应该从一行开始,然后优雅地扩展到更多行,直到达到某个限制(例如 5 行文本),然后根据需要开始滚动到最新的一行。

查看了 SlackTextViewController 但 a) 似乎它有很多我不想要的东西 b) 我想尝试在 React 中保留尽可能多的代码(并且尽可能脱离 objective-C/swift)。

编辑:只想强调,如上所述,我更喜欢 REACT (JAVASCRIPT) 代码,而不是 Objective-C 或 Swift。

最佳答案

我今天尝试了两种不同的方法来做到这一点。两者都不是最好的,但我想我会记录下我的努力,以防它们有帮助。它们都确实具有您正在寻找的效果,尽管有时会因所有异步通信而延迟。

1) 离屏文字高度

所以就在 TextInput 下,我添加了一个具有相同字体和填充等的常规文本字段。我在输入上注册了 onChange 监听器并调用了 setState({text: event.nativeEvent.text})。文本文件的值(value)来自国家。两者都有 onLayout 监听器。基本上,目标是从(不受限制的)文本中获取 TextInput 的高度。然后我将文本方式隐藏在屏幕外

https://gist.github.com/bleonard/f7d748e89ad2a485ec34

2) 原生模块

实际上,我只需要真实 UITextView 中内容的高度。所以我向 RCTUIManager 添加了一个类别,因为那里已经有几种有用的方法。我摆脱了隐藏的 TextView 。所以 onChange,我请求高度并通过状态以相同的方式使用它。

https://gist.github.com/bleonard/6770fbfe0394a34c864b

3) Github 公关

我真正希望的是这个 PR 被接受。它看起来会自动执行类似的操作。

https://github.com/facebook/react-native/pull/1229

关于ios - 制作多行,使用 React-Native 扩展 TextInput,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31475187/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com