2012-03-15 3 views
-1

Это видно в UITextView и UITextField - мигающая синяя линия, которая показывает вам, где будут печататься все, что вы набираете. Я видел, как некоторые приложения меняют цвет и не знают, как это сделать. Как изменить цвет?Как изменить цвет индикатора ввода текста?

+1

возможно дубликат [Как изменить цвет курсора в текстовое поле ?] (http://stackoverflow.com/questions/2190352/how-to-change-the-color-of-the-cursor-in-the-textfield) –

ответ

2
[[textField textInputTraits] setValue:[UIColor redColor] forKey:@"insertionPointColor"]; 
+5

, но обратите внимание, что приведенным выше кодом вы получите свое решение, но ваше приложение может быть отклонено во время отправки в хранилище приложений для просмотра ». –

+0

Спасибо @ MohitNigam Я хочу знать, что помимо этого решения, каков хороший способ изменить цвет курсора текстового поля для iOS6? –

0

Нет никакого документального способа изменить цвет указателя. Hovewer, есть один недокументированный объект textField, а именно textInputTraits, который является экземпляром UITextInputTraits.

Вы можете попробовать этот код, чтобы это работало, но ваше приложение может быть отклонено в процессе просмотра.

[[textField textInputTraits] setValue:[UIColor redColor] forKey:@"insertionPointColor"]; 

Взятые из https://stackoverflow.com/a/4273440/736649

8

В IOS 7 вы можете просто набор tintColor, она меняет цвет для всех активных элементов в поле зрения и подвидов, включает курсор цвет:

_textField.tintColor = [UIColor redColor]; 
1

Попробуйте следующее:

[[textField valueForKey:@"textInputTraits"] setValue:CUSTOM_COLOR forKey:@"insertionPointColor"]; 

Несмотря на то, что это не документировано, но оно работает. Честно говоря, вы не используете никаких личных методов здесь - это только кодирование ключевого значения, которое является законным.

P.S. Вчера мое приложение появилось в AppStore без каких-либо проблем с этим подходом. И это не первый случай, когда я использую KVC при изменении некоторых свойств только для чтения (например, navigatonBar) или частных ivars.

-1

Изменение оттенка цвета, (IOS 7)

Change the tint color in the nib

или сделать это программно

myTextField.tintColor = [UIColor blackColor];

+0

, который не работает –

+0

id, похоже, не работает. –

0

для IOS 10 SDK, только индикатор, и Objective-C (когда-нибудь будет не хватать) мое рабочее решение:

for (UIView *subView in self.sBar.subviews){ 
    for (UIView *ndLevelSubView in subView.subviews){ 

     if ([ndLevelSubView isKindOfClass:[UITextField class]]) 
     { 
      UITextField * sbTextField = (UITextField *)ndLevelSubView; 
      [[sbTextField valueForKey:@"textInputTraits"] setValue:[UIColor n2pMainPurpleColor] forKey:@"insertionPointColor"]; 
      break; 
     } 

    } 

} 
Смежные вопросы