【问题标题】:How to hide a blue cursor in a textfield and a keyboard?如何在文本字段和键盘中隐藏蓝色光标?
【发布时间】:2015-10-07 05:42:37
【问题描述】:

当我的 ViewController 出现时,我需要获得一个空的文本字段。我试过这个:

override func viewWillAppear(animated: Bool) {
    linkField.placeholder = "test"
    linkField.text = ""
}

但是当它出现时,键盘会弹出并且一个蓝色光标在文本字段中闪烁。 我怎样才能摆脱那些?

编辑:

我认为我没有正确解释我的问题。我不需要得到一个空光标,我只需要隐藏它和键盘,直到用户触摸文本字段来输入内容。

【问题讨论】:

  • 您的要求是什么?
  • 查看编辑后的答案

标签: ios swift


【解决方案1】:

试试这个

self.textField.tintColor = [UIColor clearColor];

希望对你有帮助。

【讨论】:

  • 它使光标不可见,但是当用户触摸文本字段并且键盘仍然弹出时它应该是可见的。
【解决方案2】:

文本字段光标颜色基于默认色调颜色。在你的情况下,它是蓝色的。我会将色调更改为清晰的颜色。

linkField.tintColor = UIColor.clearColor()

对于已编辑的问题,如果您只想关闭键盘,那么

linkField.resignFirstResponder()

将关闭键盘,当您想要再次聚焦时使用

linkField.becomeFirstResponder()

【讨论】:

  • 你在哪里辞职的文本字段,viewDidAppear?
  • 对不起,我第一次将它添加到 viewWillAppear,但现在我更改为 ViewDidAppear 并且它有效!谢谢
【解决方案3】:

创建UITextField 的子类并覆盖caretRectForPosition

import UIKit

class RemoveBlinkCursor: UITextField {
    override init(frame:CGRect)
    {
        super.init(frame:frame)
    }

    required init(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)
    }

    override func caretRectForPosition(position: UITextPosition!) -> CGRect {
        return CGRectZero
    }
}

您的编辑答案更改后:

如 Vig 所说,对于显示和隐藏键盘和焦点,您可以使用 resign 并成为第一响应者。

希望这将有助于其他人消除闪烁栏。

【讨论】:

    【解决方案4】:

    Swift 3 Xcode 8

    致电view.endEditing(true) 一直对我有用

    【讨论】:

      猜你喜欢
      • 2014-03-18
      • 2011-01-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多