Hide the cursor of an UITextField

I am using a UITextField with a UIPickerView for its inputView , so that when the user taps the text field, a picker is summoned for them to select an option from.

Nearly everything works, but I have one problem: the cursor still flashes in the text field when it is active, which is ugly and inappropriate, since the user is not expected to type into the field and is not presented with a keyboard. I know I could hackily solve this by setting editing to NO on the text field and tracking touches on it, or by replacing it with a custom-styled button, and summoning the picker via code. However, I want to use the UITextFieldDelegate methods for all the event handling on the text field and hacks such as replacing the text field with a button do not permit this approach.

How can I simply hide the cursor on the UITextField instead?


简单地继承UITextField并覆盖caretRectForPosition

- (CGRect)caretRectForPosition:(UITextPosition *)position
{
    return CGRectZero;
}

从iOS 7开始,您现在可以在textField上设置tintColor = [UIColor clearColor] ,并且脱字符号将消失。


You can just clear the textfield's tintColor

self.textField.tintColor = [UIColor clearColor];

Swift 3.0

self.textField.tintColor = .clear

在这里输入图像描述

链接地址: http://www.djcxy.com/p/73500.html

上一篇: 点击“下一个”时移动到下一个UITextField

下一篇: 隐藏UITextField的游标