でカーソルの色を変更するにはどうすればよいUITextField
ですか?
6 に答える
tintColor
iOS 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 テキスト フィールドがどのように見えるかを示すシミュレーターのスクリーンショットで、色合いが赤に設定されています。
テキストカーソルのスクリーンショット:
テキスト選択のスクリーンショット:
iOSではUITextfield
、textInputTraits
プロパティがあります。のプライベートプロパティの1つはUITextInputTraits
ですinsertionPointColor
。
これは文書化されていないプロパティであるため、カスタムカラーを設定すると、アプリがAppStoreから拒否される可能性があります。それが問題ではない場合、これは機能するはずです:
[[addNewCategoryTextField textInputTraits] setValue:[UIColor redColor]
forKey:@"insertionPointColor"];
[[self.searchTextField valueForKey:@"textInputTraits"] setValue:[UIColor redColor] forKey:@"insertionPointColor"];
Mac OS X で開発している場合は、このsetInsertionPointColor:
方法を試すことができます。詳細については、 NSTextViewリファレンスを参照してください。
Durgesh のアプローチは機能します。
私もそのような KVC ソリューションを何度も使用しました。文書化されていないように見えますが、機能します。率直に言って、ここではプライベート メソッドは使用しません。正当な Key-Value コーディングのみを使用します。
[addNewCategoryTextField textInputTraits] とは大きく異なります。
PS 昨日、私の新しいアプリは、このアプローチで問題なく AppStore に登場しました。また、一部の読み取り専用プロパティ (navigatonBar など) またはプライベート ivar を変更する際に KVC を使用するのは初めてではありません。