更改 UITextField 中光标的颜色

发布于 2024-08-20 19:18:19 字数 44 浏览 7 评论 0原文

如何更改 UITextField 中光标的颜色?

How can I change the color of the cursor in my UITextField?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

满意归宿 2024-08-27 19:18:19

在 iOS 7 中,您只需更改 UITextFieldtintColor 属性即可。这将影响文本光标的颜色和文本选择突出显示的颜色。

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

textField.tintColor = [UIColor redColor];

Swift 4 中:

textField.tintColor = UIColor.red

...或在 Interface Builder 中:

显示如何的屏幕截图在界面生成器中修改文本字段的色调

您还可以使用 UITextField 外观代理对应用程序中的所有文本字段执行此操作:

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

在 Swift 4 中:

UITextField.appearance().tintColor = UIColor.red

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

文本光标截图:

文本光标截图

文本选择截图:

< img src="https://i.sstatic.net/foqBxm.png" alt="文本选择截图">

With iOS 7 you can simply change tintColor property of the UITextField. This will affect both the color of the text cursor and the text selection highlight color.

You can do this in code ...

textField.tintColor = [UIColor redColor];

...

In Swift 4:

textField.tintColor = UIColor.red

...or in Interface Builder:

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

You can also do this for all text fields in your app using the UITextField appearance proxy:

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

In Swift 4:

UITextField.appearance().tintColor = UIColor.red

Below are simulator screenshots showing what an otherwise ordinary iOS 7 text field looks like with its tint set to red.

Text cursor screenshot:

Text cursor screenshot

Text selection screenshot:

Text selection screenshot

最佳男配角 2024-08-27 19:18:19

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

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

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

In iOS, UITextfield has a textInputTraits property. One of the private properties of UITextInputTraits is insertionPointColor.

Because it's an undocumented property, setting a custom color will probably get your app rejected from the App Store. If that's not a concern, this should work:

[[addNewCategoryTextField textInputTraits] setValue:[UIColor redColor]
                                             forKey:@"insertionPointColor"];
生死何惧 2024-08-27 19:18:19
[[self.searchTextField valueForKey:@"textInputTraits"] setValue:[UIColor redColor] forKey:@"insertionPointColor"];
[[self.searchTextField valueForKey:@"textInputTraits"] setValue:[UIColor redColor] forKey:@"insertionPointColor"];
铁轨上的流浪者 2024-08-27 19:18:19

如果您在 Mac OS X 上进行开发,那么您可以尝试 setInsertionPointColor: 方法。请参阅 NSTextView参考以获取更多详细信息。

If you are developing on Mac OS X, then you can try the setInsertionPointColor: method. See NSTextView reference for more details.

红墙和绿瓦 2024-08-27 19:18:19

德吉什的方法确实有效。

我也多次使用过这样的KVC解决方案。
尽管它似乎没有记录,但它确实有效。坦白说,你没有使用任何
这里的私有方法 - 只有键值编码是合法的。

它与 [addNewCategoryTextField textInputTraits] 截然不同。

PS 昨天我的新应用程序出现在 AppStore 上,这种方法没有任何问题。这并不是我第一次使用 KVC 更改一些只读属性(如 navigatonBar)或私有 ivars。

Durgesh's approach does work.

I also used such KVC solutions many times.
Despite it seems to be undocumented, but it works. Frankly, you don't use any
private methods here - only Key-Value Coding which is legal.

It is drastically different from [addNewCategoryTextField textInputTraits].

P.S. Yesterday my new app appeared at AppStore without any problems with this approach. And it is not the first case when I use KVC in changing some read-only properties (like navigatonBar) or private ivars.

小ぇ时光︴ 2024-08-27 19:18:19

要更改整个应用程序中 UITextField/UITextViewcursor color,也可以使用外观代理,如下所示,

UITextField.appearance().tintColor = .green
UITextView.appearance().tintColor  = .green

To change the cursor color throughout the app for UITextField/UITextView, appearance proxy can also be used as below,

UITextField.appearance().tintColor = .green
UITextView.appearance().tintColor  = .green
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文