2012-03-15 35 views
-1

它在UITextView和UITextField中出现 - 闪烁的蓝色线条向您显示您键入的任何东西将被键入。我见过一些应用程序改变了这种颜色,并不知道如何做到这一点。我如何改变它的颜色?如何更改文字输入指示器的颜色?

+1

可能重复【如何改变光标颜色的文本框?](http://stackoverflow.com/questions/2190352/how-to-change-the-color-of-the-cursor-in-the-textfield) – 2012-03-15 19:18:26

回答

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

但请注意,通过上面的代码,你可以得到你的解决方案,但“ – 2012-12-22 20:47:44

+0

感谢@ MohitNigam我想知道,除了这个解决方案,有什么好办法来改变iOS6的textfield光标颜色? – 2014-07-14 06:29:42

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

不起作用 – 2013-12-31 13:46:27

+0

ID似乎不起作用。 – 2014-04-04 10:24:59

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; 
     } 

    } 

} 
相关问题