【发布时间】:2021-01-29 11:39:34
【问题描述】:
为什么 UITextfield 会在控制台中抛出这么多错误?
[Assert] View <(null):0x0> does not conform to UITextInput protocol
在 iOS 14(在物理设备上运行)上使用标准 UITextField 输入任何 UITextField 时发生,无需修改。
即使您关闭所有自动更正并将特征内容类型设置为未指定,它仍然会在键入时抛出许多此类断言失败。
当用户没有 iCloud 钥匙串时,密码字段会抛出以下内容。 (顺便说一句,这个错误确实会减慢用户的速度,它会在抛出此异常时中断他们的输入)
[AutoFill] Cannot show Automatic Strong Passwords for app bundleID: com.testing.TestProject due to error: iCloud Keychain is disabled
[KBDAnalyticsLog] -[TIAnalyticsService _registerEventSpec:withCompletionHandler:]_block_invoke TIAnalyticsEventSpec with name 'thirdPartyKeyboards' is already registered.
[KBDAnalyticsLog] -[TIAnalyticsService _registerEventSpec:withCompletionHandler:]_block_invoke TIAnalyticsEventSpec with name 'thirdPartyKeyboards' is already registered.
API error: <_UIKBCompatInputView: 0x10520fd90; frame = (0 0; 0 0); layer = <CALayer: 0x283eb0e00>> returned 0 width, assuming UIViewNoIntrinsicMetric
API error: <_UIKBCompatInputView: 0x10520fd90; frame = (0 0; 0 0); layer = <CALayer: 0x283eb0e00>> returned 0 width, assuming UIViewNoIntrinsicMetric
我还看到了其他几个错误,例如内置键盘必须打破自己的约束才能显示自己,方向禁用消息也会在用户键入时减慢文本输入
UITextfield 是刚刚在 iOS 14 中损坏还是怎么回事?我从未见过从 iOS 标准库中进入控制台的如此可怕的噪音。为了隔离,我在一个基本项目中复制了这个,只有一个视图控制器,没有外部库,甚至没有任何应用程序代码。
哦,一个更多的宝石,提示文本字段的内容类型错误。 例如,当用户在“密码”字段中输入数据时建议“用户名”。
我会向苹果报告,但这些错误浪费了我一天中的大部分时间,现在我已经确认它们发生在“空项目”中,我必须继续前进。从质量的角度来看,它有点令人震惊。这会影响我的用户,因为他们的打字速度会无缘无故地变慢或停止。
【问题讨论】:
-
你能把测试项目发布在 GitHub 或类似网站上吗?谢谢。我真的很想看到这种现象。包括说明。我特别想看看您如何证明这会影响用户。
-
这里有同样的问题。
UIScrollView也搞砸了。如果你经常调用setContentOffset,它会抛出一个CALayerInvalidGeometry CALayer bounds contains NaN。但我从来没有将这种价值传递给任何地方。即使我避免通过零,它仍然会崩溃。所以我只需要更改为使用scrollRectToVisible以防止此问题再次发生。我什至不知道如何将CALayer边界设置为UIScrollView。 -
不能肯定,但是当我在设置->常规->键盘中关闭一堆开关时,一些类似的错误消失了,比如自动大写和预测输入。
-
你可能会在这个帖子stackoverflow.com/questions/52770550/…找到答案