40

でカーソルの色を変更するにはどうすればよいUITextFieldですか?

4

6 に答える 6

98

tintColoriOS 7 では、 のプロパティを簡単に変更できますUITextField。これは、テキスト カーソルの色とテキスト選択のハイライト色の両方に影響します。

コードでこれを行うことができます...

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 テキスト フィールドがどのように見えるかを示すシミュレーターのスクリーンショットで、色合いが赤に設定されています。

テキストカーソルのスクリーンショット:

テキストカーソルのスクリーンショット

テキスト選択のスクリーンショット:

テキスト選択のスクリーンショット

于 2013-09-12T08:47:54.127 に答える
14

iOSではUITextfieldtextInputTraitsプロパティがあります。のプライベートプロパティの1つはUITextInputTraitsですinsertionPointColor

これは文書化されていないプロパティであるため、カスタムカラーを設定すると、アプリがAppStoreから拒否される可能性があります。それが問題ではない場合、これは機能するはずです:

[[addNewCategoryTextField textInputTraits] setValue:[UIColor redColor]
                                             forKey:@"insertionPointColor"];
于 2010-11-25T03:13:10.760 に答える
6
[[self.searchTextField valueForKey:@"textInputTraits"] setValue:[UIColor redColor] forKey:@"insertionPointColor"];
于 2013-06-05T04:22:28.750 に答える
3

Mac OS X で開発している場合は、このsetInsertionPointColor:方法を試すことができます。詳細については、 NSTextViewリファレンスを参照してください。

于 2010-02-03T08:55:30.767 に答える
2

Durgesh のアプローチは機能します。

私もそのような KVC ソリューションを何度も使用しました。文書化されていないように見えますが、機能します。率直に言って、ここではプライベート メソッドは使用しません。正当な Key-Value コーディングのみを使用します。

[addNewCategoryTextField textInputTraits] とは大きく異なります。

PS 昨日、私の新しいアプリは、このアプローチで問題なく AppStore に登場しました。また、一部の読み取り専用プロパティ (navigatonBar など) またはプライベート ivar を変更する際に KVC を使用するのは初めてではありません。

于 2013-09-16T18:47:55.047 に答える