UITextField
のカーソルの色を変更するにはどうすればよいですか?
IOS 7では、tintColor
の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
プロパティがあります。 UITextInputTraits
のプライベートプロパティの1つはinsertionPointColor
です。
ドキュメントに記載されていないプロパティであるため、カスタム色を設定すると、アプリがApp Storeから拒否される可能性があります。それが問題ではない場合、これはうまくいくはずです:
[[addNewCategoryTextField textInputTraits] setValue:[UIColor redColor]
forKey:@"insertionPointColor"];
[[self.searchTextField valueForKey:@"textInputTraits"] setValue:[UIColor redColor] forKey:@"insertionPointColor"];
Mac OS Xで開発している場合は、setInsertionPointColor:
方法。詳細は NSTextView リファレンスを参照してください。
ダーゲッシュのアプローチは機能します。
私もそのようなKVCソリューションを何度も使用しました。文書化されていないようですが、動作します。率直に言って、ここではプライベートメソッドを使用せず、合法なKey-Valueコーディングのみを使用します。
[addNewCategoryTextField textInputTraits]とは大きく異なります。
追伸昨日、私の新しいアプリがこのアプローチで問題なくAppStoreに登場しました。そして、いくつかの読み取り専用プロパティ(navigatonBarなど)またはプライベートivarを変更するときにKVCを使用するのは、これが最初のケースではありません。
アプリ全体でcursor
color
を変更するにはUITextField/UITextView
、外観プロキシは次のように使用することもできます。
UITextField.appearance().tintColor = .green
UITextView.appearance().tintColor = .green