如何更改光标的颜色UITextField
?
6 回答
使用 iOS 7 ,您可以简单地更改tintColor
. UITextField
这将影响文本光标的颜色和文本选择突出显示的颜色。
您可以在代码中执行此操作...
textField.tintColor = [UIColor redColor];
...
在 Swift 4 中:
textField.tintColor = UIColor.red
...或在界面生成器中:
您还可以使用UITextField
外观代理对应用程序中的所有文本字段执行此操作:
[[UITextField appearance] setTintColor:[UIColor redColor]];
在 Swift 4 中:
UITextField.appearance().tintColor = UIColor.red
下面是模拟器屏幕截图,显示了一个普通的 iOS 7 文本字段在其色调设置为红色时的样子。
文本光标截图:
文字选择截图:
在 iOS 中,UITextfield
有一个textInputTraits
属性。的私有属性之一UITextInputTraits
是insertionPointColor
。
因为它是一个未记录的属性,设置自定义颜色可能会导致您的应用被 App Store 拒绝。如果这不是问题,这应该有效:
[[addNewCategoryTextField textInputTraits] setValue:[UIColor redColor]
forKey:@"insertionPointColor"];
[[self.searchTextField valueForKey:@"textInputTraits"] setValue:[UIColor redColor] forKey:@"insertionPointColor"];
如果你是在 Mac OS X 上开发,那么你可以试试这个setInsertionPointColor:
方法。有关更多详细信息,请参阅NSTextView参考。
Durgesh 的方法确实有效。
我也多次使用过这样的 KVC 解决方案。尽管它似乎没有记录,但它确实有效。坦率地说,您在这里没有使用任何私有方法——只有合法的键值编码。
它与 [addNewCategoryTextField textInputTraits] 截然不同。
PS 昨天我的新应用出现在 AppStore 上,这种方法没有任何问题。当我使用 KVC 更改一些只读属性(如 navigatonBar)或私有 ivars 时,这不是第一种情况。
要更改cursor
color
整个应用程序UITextField/UITextView
,还可以使用外观代理,如下所示,
UITextField.appearance().tintColor = .green
UITextView.appearance().tintColor = .green