如何在使用 UIWebView 编辑 HTML 内容时正确调整输入语言更改 (LTR/RTL) 的文本对齐方式



这似乎是UITextField和UITextView自动的。当文本为空时,如果将键盘更改为 RLT 语言(如"ar"和"he-IL"),光标将转到最右侧的位置。将键盘更改为其他语言时,光标将转到最左侧的位置。对于 UIWebView,无论所选的输入语言如何(设备主要语言为 LTR),光标始终位于最左侧的位置。

我可以通过在检测键盘输入语言更改时为 HTML 设置 dir 属性来强制 RTL 或 LRT 文本对齐,例如:

[webView stringByEvaluatingJavaScriptFromString:@"document.documentElement.dir='rtl'"]

[webView stringByEvaluatingJavaScriptFromString:@"document.documentElement.dir='ltr'"]

这是有效的,但似乎适用于整个内容。Apple 本机邮件做得更好,只有当前文本行/段落的对齐方式受此影响。我不确定Apple本机邮件是否使用UIWebView实现。

我正在寻找建议/提示,以便我可以模仿 Apple 本机邮件 HTML 编辑行为(支持 RTL 语言)。

您可以将 CSS 属性 "direction" 应用于要更改的页面中的特定 html 元素。至于知道用户何时在iOS键盘中切换语言,您可以收听UITextInputCurrentInputModeDidChangeNotification通知

这将为您提供当前语言:

[UITextInputMode currentInputMode].primaryLanguage

最新更新