Ios 在UITextField中粘贴文本时的奇怪行为

Ios 在UITextField中粘贴文本时的奇怪行为,ios,uitextfield,Ios,Uitextfield,以下是我所做的: 打开应用商店应用程序 在搜索框中键入“123” 从搜索框中剪切文本“123” 在搜索框中键入“xx” 将搜索框光标移动到两个“x”之间 将“123”粘贴到搜索框 结果应该是“x123x”,但我得到的是“x123x”。这发生在所有应用程序的所有UITextField上 请参阅此gif: 这是一个iOS错误吗?还是我遗漏了什么?这是故意的行为。有一个属性可在iOS 11上禁用此功能: if #available(iOS 11.0, *) { textField.smart

以下是我所做的:

  • 打开应用商店应用程序
  • 在搜索框中键入“123”
  • 从搜索框中剪切文本“123”
  • 在搜索框中键入“xx”
  • 将搜索框光标移动到两个“x”之间
  • 将“123”粘贴到搜索框
  • 结果应该是“x123x”,但我得到的是“x123x”。这发生在所有应用程序的所有UITextField上

    请参阅此gif:


    这是一个iOS错误吗?还是我遗漏了什么?

    这是故意的行为。有一个属性可在iOS 11上禁用此功能:

    if #available(iOS 11.0, *) {
        textField.smartInsertDeleteType = .no
    }
    

    另请参见:

    虽然我正确理解了问题,但未能理解问题的目的。如果你问这个问题是为了让你能在苹果雷达上获得一张罚单,我不认为这是一个错误,但这是他们希望它实现的方式,但是你可以一直这样做,并提出一张罚单,以确保同样的结果。如果在你的应用程序中它困扰着你,我们可以编写代码来修复它。我正在尝试创建一个自定义UITextField,当我测试它时,我遇到了这个问题,这种行为对我来说毫无意义。我必须在自定义UITextField上添加一些变通代码来处理这种特殊情况。你能详细解释一下你所说的“这就是他们想要实现的方式”是什么意思吗?因为我觉得这种行为是不对的。谢谢。我刚才说他们可能会回答“这就是我们希望它实现的方式”:)你可以随时提出异议,因为整个系统应用程序的行为是一致的,我相信这可能是故意的代码。但是你总是可以覆盖粘贴操作,提供你的自定义实现我也在代理“public func textField(textField:UITextField,shouldChangeCharactersIn range:NSRange,replacementString:string)->Bool”中偶然发现了这个问题,当粘贴replacementString时,粘贴的文本周围有空格,当我检查UIPasteboard.general.string时,没有空间(iOS 11.3)刚刚在9.3上测试过,粘贴的内容周围没有空间