在UITextField中更改光标的颜色

时间:2010-02-03 07:34:28

标签: objective-c swift cocoa-touch uitextfield

如何在UITextField

中更改光标的颜色

6 个答案:

答案 0 :(得分:88)

使用iOS 7,您只需更改tintColor的{​​{1}}属性即可。这将影响文本光标的颜色和文本选择高亮颜色。

您可以在代码中执行此操作...

UITextField

...

在Swift 4中:

textField.tintColor = [UIColor redColor];

...或在Interface Builder中:

screenshot showing how to modify tint of a text field in interface builder

您还可以使用textField.tintColor = UIColor.red 外观代理

为应用中的所有文本字段执行此操作
UITextField

在Swift 4中:

[[UITextField appearance] setTintColor:[UIColor redColor]];

下面是模拟器截图,显示了普通iOS 7文本字段的外观,其色调设置为红色。

文字光标屏幕截图:

Text cursor screenshot

文字选择截图:

Text selection screenshot

答案 1 :(得分:14)

在iOS中,UITextfield具有textInputTraits属性。 UITextInputTraits的一个私有属性是insertionPointColor

因为它是一个未记录的属性,设置自定义颜色可能会使您的应用程序从App Store中被拒绝。如果这不是一个问题,这应该有效:

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

答案 2 :(得分:6)

[[self.searchTextField valueForKey:@"textInputTraits"] setValue:[UIColor redColor] forKey:@"insertionPointColor"];

答案 3 :(得分:2)

如果您在Mac OS X上进行开发,则可以尝试使用setInsertionPointColor:方法。有关详细信息,请参阅NSTextView参考。

答案 4 :(得分:2)

Durgesh的方法确实有效。

我也多次使用过这样的KVC解决方案。 尽管它似乎没有文档,但它的工作原理。坦白说,你不要使用任何 这里的私有方法 - 只有合法的键值编码。

与[addNewCategoryTextField textInputTraits]截然不同。

P.S。昨天我的新应用程序出现在AppStore,没有遇到任何问题。当我使用KVC更改一些只读属性(如navigatonBar)或私有ivars时,这不是第一种情况。

答案 5 :(得分:0)

要在整个option应用中更改cursor color,外观代理也可以按以下方式使用,

UITextField/UITextView