Как изменить цвет курсора в моем UITextField
?
Изменить цвет курсора в UITextField
Ответ 1
С iOS 7 вы можете просто изменить свойство tintColor
для UITextField
. Это повлияет как на цвет текстового курсора, так и на цвет выделения выделения текста.
Вы можете сделать это в коде...
textField.tintColor = [UIColor redColor];
... или в Interface Builder:
Вы также можете сделать это для всех текстовых полей в приложении с помощью прокси-сервера UITextField
:
[[UITextField appearance] setTintColor:[UIColor redColor]];
Ниже приведены скриншоты симулятора, показывающие, как выглядит обычное текстовое поле iOS 7, при этом его оттенок установлен на красный.
Снимок экрана текстового курсора:
Снимок экрана выбора текста:
Ответ 2
В iOS UITextfield
имеет свойство textInputTraits
. Одним из частных свойств UITextInputTraits
является insertionPointColor
.
Поскольку это недокументированное свойство, настройка пользовательского цвета, вероятно, заставит ваше приложение отклоняться из App Store. Если это не проблема, это должно работать:
[[addNewCategoryTextField textInputTraits] setValue:[UIColor redColor]
forKey:@"insertionPointColor"];
Ответ 3
[[self.searchTextField valueForKey:@"textInputTraits"] setValue:[UIColor redColor] forKey:@"insertionPointColor"];
Ответ 4
Если вы разрабатываете Mac OS X, вы можете попробовать метод setInsertionPointColor:
. Подробнее см. NSTextView.
Ответ 5
Подход Durgesh работает.
Я также использовал такие решения KVC много раз. Несмотря на то, что это кажется недокументированным, но оно работает. Честно говоря, вы не используете частные методы здесь - только кодирование ключевого значения, которое является законным.
Он сильно отличается от [addNewCategoryTextField textInputTraits].
P.S. Вчера мое приложение появилось в AppStore без каких-либо проблем с этим подходом. И это не первый случай, когда я использую KVC при изменении некоторых свойств только для чтения (например, navigatonBar) или личных ivars.