【问题标题】:How to append placeholder to textview/textfield after user begins editing用户开始编辑后如何将占位符附加到文本视图/文本字段
【发布时间】:2017-07-03 04:37:20
【问题描述】:

我正在尝试创建一个textfield 输入,它强制用户输入电子邮件地址但强制域(当用户输入返回时验证域逻辑),因此用户输入与该域关联的电子邮件只要。这需要在 UI 本身上非常清楚,我尝试使用 UITextField 但由于占位符在用户开始编辑后被清除,所以效果不太好。这是 Slack 应用程序的示例屏幕截图,显示了类似的文本字段-

例如。用户进入团队域,用户文本后附加“.slack.com”。

【问题讨论】:

    标签: ios uitextfield uitextview


    【解决方案1】:

    当用户键入时,您可以将结束域附加到用户键入的内容中。您还可以使用属性字符串来更改附加文本的颜色,使其看起来仍然是占位符的一部分。这应该在textField:shouldChangeCharactersInRange:replacementString: 中完成 查看官方文档https://developer.apple.com/reference/uikit/uitextfielddelegate/1619599-textfield?language=objc

    为了将光标设置在所需位置,您可以使用 UITextPosition,这在 this answer 中有详细说明

    【讨论】:

    • 嗨琼谢谢你的回答。不过我有疑问,这是否意味着光标移动到附加字符串的末尾?因为我确实希望光标停留在用户输入上并且不允许用户编辑域?
    【解决方案2】:

    NSAttributedString 设置为来自textField:shouldChangeCharactersInRange:replacementString: 调用的textField.text 将为您提供所需的行为。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-06
      • 2017-10-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多