【问题标题】:UITextField throwing all kinds of errors in iOS 14UITextField 在 iOS 14 中抛出各种错误
【发布时间】: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/…找到答案

标签: ios swift


【解决方案1】:

我发现了一个非常有趣的苹果问题。 如果您的视图控制器在类名中包含“新”,则会发生上述问题。 例如,您的视图控制器的名称是NewOnboardingViewControllerSocialNewViewController。 所以忽略上述问题的最好方法是替换'New'

【讨论】:

  • 这太奇怪了!
猜你喜欢
  • 2021-06-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-16
  • 2011-02-27
  • 1970-01-01
  • 2012-09-01
  • 1970-01-01
相关资源
最近更新 更多