【发布时间】:2013-06-09 04:42:58
【问题描述】:
如何将安全的 UITextField 文本(只是一堆点)更改为 (*) 星号字符,如下图所示?
【问题讨论】:
标签: ios objective-c uitextfield
如何将安全的 UITextField 文本(只是一堆点)更改为 (*) 星号字符,如下图所示?
【问题讨论】:
标签: ios objective-c uitextfield
您可以通过编程方式设置它
[textField setSecureTextEntry:YES];
或在 IB 中(底部的安全复选框)
【讨论】:
您也可以尝试简单地实现自己的“安全文本字段”。
只需创建一个普通的、不安全的文本字段,并将其“编辑更改”操作与视图控制器中的方法链接即可。
然后在该方法中,您可以在每次更改文本时获取新字符,并将它们添加到私有 NSString 属性,然后将 textField 的 .text 属性设置为其中只有星号的字符串(或任何其他字符如果你愿意)。
更新:正如下面 hayesk 所述,此解决方案不再理想,因为第三方键盘的引入会将任何非安全文本字段上的输入暴露给第三方应用程序,冒着收集该信息和/或将其添加到自动更正数据库的风险。
【讨论】:
func application(_ application: UIApplication, shouldAllowExtensionPointIdentifier extensionPointIdentifier: UIApplicationExtensionPointIdentifier) -> Bool { if extensionPointIdentifier == .keyboard { return false } return true } 添加到您的AppDelegate 以禁用第三方键盘。