iOSでカーソル/キャレットの色をUITextField
(そして同じ答えであれば)変更することについて疑問に思っています。UITextView
OSX 開発に関する回答は見たことがありますが、iOS に関する回答はありません。
これは可能ですか?
iOSでカーソル/キャレットの色をUITextField
(そして同じ答えであれば)変更することについて疑問に思っています。UITextView
OSX 開発に関する回答は見たことがありますが、iOS に関する回答はありません。
これは可能ですか?
iOS7 では、textField の tintColor を簡単に変更できます。
スウィフト 3:
UITextField.appearance().tintColor = UIColor.black
UITextView.appearance().tintColor = UIColor.black
yourTextField.tintColor = [UIColor whiteColor];
コードで設定すると機能します.'cosどういうわけか、カラートリガーはInterface Builder(Xcode 6.1.1)でそれを行いません. 外観プロキシを変更する必要なく、うまく適合しました。
注: この回答は古くなっているため、iOS 7 より前の開発にのみ使用してください。iOS 7 の外観プロキシを使用した 1 行のソリューションについては、他の回答を参照してください。
私が取り組んでいたプロジェクトで同じ問題に直面した後、私はこの質問にたどり着きました。
既存のプライベート API を使用しないため、AppStore レビュー チームに受け入れられるソリューションを作成することができました。
UITextField を拡張する DGTextField というコントロールを作成しました。
より一般的なアプローチは、UIView の外観の tintColor を設定することです。
UIColor *myColor = [UIColor purpleColor];
[[UIView appearance] setTintColor:myColor];
多くのデフォルトの UI 要素を使用している場合は理にかなっています。
試してみてください、それは私のために働いています。
[[self.textField valueForKey:@"textInputTraits"] setValue:[UIColor redColor] strong textforKey:@"insertionPointColor"];
これはプライベート プロパティにアクセスすることによってのみ可能であり、そのため Apple AppStore アプリの拒否を引き起こす可能性があります。
Durgesh のアプローチは機能します。
私もそのような KVC ソリューションを何度も使用しました。文書化されていないように見えますが、機能します。率直に言って、ここではプライベート メソッドは使用しません。正当な Key-Value コーディングのみを使用します。
PS 昨日、私の新しいアプリは、このアプローチで問題なく AppStore に登場しました。また、一部の読み取り専用プロパティ (navigatonBar など) またはプライベート ivar を変更する際に KVC を使用するのは初めてではありません。
UITextField
が fromの場合、UISearchBar
最初にtextField
from を取得してからプロパティsearchBar
を適用します。tintColor
let textFieldInsideSearchBar = searchBar.value(forKey: "searchField") as? UITextField
textFieldInsideSearchBar?.tintColor = UIColor.lightGray