首页 > 解决方案 > iOS 15 - 将 unicode 字符文本分配给将 isSecureTextEntry 设置为 true 的 UITextField 无法按预期工作

问题描述

我正在开发一个项目,该项目具有密码文本字段,就像 OTP 文本字段一样,它只允许安全文本字段中的一个字符。

在这方面也支持退格。当文本字段成为第一响应者时,将添加 unicode 字符 @"\u200B" 作为文本字段的文本。

我的问题是,它可以正常工作到 iOS 14,但不能在 iOS 15中,安全文本字段中的 unicode 字符将其作为字符并在文本字段上显示文本。

仅当文本字段允许安全文本输入时才会出现此问题。

以下是我在演示项目中用于显示问题的代码:

- (void)viewDidLoad {
    [super viewDidLoad];

    [txtUser setSecureTextEntry:false];
    [txt1 setSecureTextEntry:true];

    txtUser.text = @"\u200B";
    txt1.text = @"\u200B";

}

在上面的代码中,txtUser 不允许安全文本输入,但txt1 允许安全文本输入

以下是 iOS 14 和 15 的屏幕截图:

iOS 14 结果:

正常:https ://i.stack.imgur.com/l2ZPd.png

颜色混合层:https ://i.stack.imgur.com/XupKH.png

iOS 15 结果:

正常:https ://i.stack.imgur.com/Wtj46.png

颜色混合层:https ://i.stack.imgur.com/MB33H.png

我希望 iOS 15 中的结果与 iOS 14 中的结果相同。我搜索了很多解决方案,但还没有找到正确的解决方案!

谢谢!!

标签: swiftobjective-cunicodeuitextfieldios15

解决方案


推荐阅读