【发布时间】:2019-07-01 15:23:27
【问题描述】:
我需要跟踪 SecureField 是否处于活动状态(即显示键盘)
对于常规的 TextField,我使用 onEditingChanged,它会为我提供一个布尔值,如果它是活动的还是非活动的
SecureField 没有这个方法。如何跟踪活动状态?
【问题讨论】:
-
嗯...这是一个丑陋的 hack,但是如果您的视图中有一个 SecureField,您可以收听 keyBoardWillShow 通知并跟踪所有其他 TextField。如果没有激活 (onEditingChanged),那么它必须是您的 Securefield。可怕,我知道。我认为将其报告为错误是个好主意。
-
不幸的是,即使那个 hack 对我也不起作用,因为我的视图上会有 2 个 SecureFields:输入密码并确认密码
-
这仍然不是一个解决方案,但是您知道您可以通过使用 Combine: if myvar 是您使用的 @State/@Binding 变量来为安全字段中键入的每个字符挂钩SecureField,你可以这样做:myvar.publisher().sink { c in print("character: (c)") }。不幸的是,当该字段被激活时,发布者什么也不做。但至少你可以知道哪个是最后使用的字段。
标签: ios swift textfield swiftui