iOS - swift 3.0:当输入语言为阿拉伯语时,UITextField仍然显示大写锁定指示符

时间:2017-08-02 11:28:38

标签: ios swift3

iOS - swift 3.0:我正在开发一个使用英语和阿拉伯语的iOS应用程序。在我的密码文本字段中,该字段位于"安全文本条目"模式,当我将键盘的文本输入语言从英语更改为阿拉伯语时,它仍然显示大写锁定指示符。我无法找到解决这个奇怪问题的任何解决方案。请帮助我。提前谢谢。

注意:我甚至无法经常重现,但我的客户报告此错误。 我完全无能为力。看起来像iOS bug?

2 个答案:

答案 0 :(得分:0)

好吧,假设阿拉伯语键盘基本上没有移位键(并且进一步假设在英语对应之前按下移位实际上没有修改输入,即它只是一个图形故障)听起来像是苹果公司的一个错误一部分。

根据this回答(已过时,但我认为仍然有效),您无法在此意义上以编程方式更改键盘的任何内容。即你不能按下像代码中的移动按钮。

如果它只是一个图形问题,你可以弄清楚 的图标何时消失,你可以通过将自己的图像覆盖在按钮上来解决它(例如白色方块以隐藏它),如so。我不知道在需要设置图像之前会立即发生哪种事件或委托方法,但是,您必须与用户一起解决这个问题。

如果它真的只是一个图形问题,我还建议为Apple提交一份报告。

答案 1 :(得分:0)

最后,我提出了一个解决方案,以便在文本字段处于secureTextEntry模式时隐藏文本字段的大写锁定指示符。

//-------To hide caps lock indicator------//

        let v = UIView(frame: CGRect(x: 0, y: 0, width: 0, height: 0))
        self.passwordTextField.rightView = v

//----------------------------------------//   

基本上,当文本字段处于secureTextEntry模式时,大写锁定指示符默认显示在UITextFiled的右视图上。 通过将具有零维度的视图分配给文本字段的右视图,它只是用新视图(具有零维度)覆盖该视图,因此大写锁定指示符在此之后永远不会出现。