2010-02-03 94 views
33

如何更改我的UITextField中光標的顏色?更改UITextField中光標的顏色

+1

你需要澄清一下,如果你正在使用可可或可可觸摸。你可以通過在你的問題中輸入實際的類名來清楚地說明這一點。 – uchuugaka 2013-09-12 09:37:24

回答

2

如果您正在Mac OS X上開發,那麼您可以嘗試setInsertionPointColor:方法。有關更多詳細信息,請參閱NSTextView參考。

+0

是的,我嘗試使用: [addNewCategoryTextField setInsertionPointColor:[UIColor redColor]]; 但我得到的警告:UITextField可能不會響應-setInsertionPointColor – monish 2010-02-03 09:27:03

+0

當我使用的函數爲: [addNewCategoryTextField setInsertionPointColor:[NSColor redColor]]; 由於未在函數中聲明使用NSColor,因此產生了一個錯誤。 – monish 2010-02-03 09:34:08

+1

這是我答案的一部分:此消息僅適用於Mac OS X,而不適用於iPhone。 在你的問題中,你還沒有指定你正在開發的平臺。所以我認爲這是Mac OS X ... – 2010-02-03 09:53:32

14

在iOS中,UITextfield有一個textInputTraits屬性。 UITextInputTraits的私人財產之一是insertionPointColor

因爲它是一個未公開的屬性,所以設置自定義顏色可能會讓您的應用程序在App Store中被拒絕。如果這不是一個問題,這應該工作:

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

如果它是無證的(私人),那麼你肯定會被蘋果拒絕。 – 2013-01-18 21:55:15

+0

有人試過這個,並得到蘋果的拒絕? – Klaas 2013-03-09 23:19:17

+1

這在iOS 6中效果很好。在iOS 7中使用色調顏色。我會讓你知道,如果應用程序被拒絕,但其他人已經使用這個技巧沒有問題。 – phatmann 2013-10-15 01:07:02

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

與iOS 7,你可以簡單地改變UITextFieldtintColor財產。這將影響文本光標的顏色和文本選擇高亮顏色。

您可以在代碼中做到這一點...

textField.tintColor = [UIColor redColor]; 

...或者在Interface Builder:

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

您也可以使用應用中的所有文本域做到這一點UITextField外觀代理:

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

以下是仿真器屏幕截圖,其中顯示了其他普通iOS 7文本字段的顏色,其色調設置爲紅色。

文本光標截圖:

Text cursor screenshot

文本選擇截圖:

Text selection screenshot

+8

對我來說,奇怪的是,如果你在界面構建器中設置它,那麼它不工作:我懷疑顯示的項目是針對UIView本身,「不是」文本字段方面本身。 – Fattie 2014-07-24 16:26:36

+1

與@Joe Blow相同,只有在您以編程方式設置時才能使用。而且,它也不適用於模擬器,只能在真實的設備上運行。奇怪 – tbaranes 2015-02-09 08:45:33

1

Durgesh的做法確實工作。

我也多次使用過這樣的KVC解決方案。 儘管它似乎是無證的,但它的工作原理。坦率地說,你在這裏不使用任何 私有方法 - 只有鍵值編碼是合法的。

它與[addNewCategoryTextField textInputTraits]截然不同。

P.S.昨天我的新應用出現在AppStore中,沒有任何問題。當我使用KVC更改一些只讀屬性(如navigatonBar)或私有ivars時,這不是第一種情況。

+1

@Sathish事實上,這是一個答案!如果他發表了評論,它會值得嗎? – 2014-08-27 10:26:25