ios - React Native iOS 中的键盘语言?
问题描述
有没有办法知道 React-Native iOS 应用程序中键盘的语言?
因为我想TextInput
根据当前语言自动切换方向
解决方案
您可以使用以下方式获取 devide 语言环境:
import { NativeModules } from 'react-native'
const locale = NativeModules.SettingsManager.settings.AppleLocale ||
NativeModules.SettingsManager.settings.AppleLanguages[0]
它应该产生类似的东西:
"fr_FR"
键盘语言本身,直到现在我才发现任何东西。
编辑
如果您创建一个native module
.
这是一个如何使用java for android获取它的示例:
private void printInputLanguages() {
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
List<InputMethodInfo> ims = imm.getEnabledInputMethodList();
for (InputMethodInfo method : ims) {
List<InputMethodSubtype> submethods = imm.getEnabledInputMethodSubtypeList(method, true);
for (InputMethodSubtype submethod : submethods) {
if (submethod.getMode().equals("keyboard")) {
String currentLocale = submethod.getLocale();
Log.i(TAG, "Available input method locale: " + currentLocale);
}
}
}
}
对于 IOS ,以下是如何使用 swift 进行操作:
var language = textfield.textInputMode?.primaryLanguage
以下是如何为 react-native 创建原生模块
推荐阅读
- java - 如何允许 EditText 为空并显示 setError 消息?
- c++ - 在 Qt 中自动调整小部件的大小
- excel - 除非手动切换设计模式,否则工作表上容器框架中的表单对象处于非活动状态
- c++ - 如何在 QT 4.8 的 XML 文件中的同一元素中添加多个属性
- python - 关于使用 Flask-Ask 和 python 创建对话式 alexa 技能的困惑:当缺少所需的插槽时,它会转到 FallBackIntent
- batch-file - 带有批处理文件的 Jenkins 多行参数
- r - 根据列表列表中的值从数据框中选择值的函数
- spring - Spring Boot - 无法从类型 [java.lang.String] 转换为类型 RequestParam
- azure-iot-hub - azure iot-hub 设备孪生删除所需的属性
- webassembly - 不使用 JS 执行 wasm 代码