最初のテキストが「username.mysite.com」であるUITextFieldがあります。デフォルトの色(黒)が設定されています。
グレーのような別の色の「ユーザー名」が欲しいのですが。出来ますか?
プレースホルダーが「url」ではなく、ユーザーは「クリアボタン」をクリックできます。
最初のテキストが「username.mysite.com」であるUITextFieldがあります。デフォルトの色(黒)が設定されています。
グレーのような別の色の「ユーザー名」が欲しいのですが。出来ますか?
プレースホルダーが「url」ではなく、ユーザーは「クリアボタン」をクリックできます。
UITextFieldを直接使用して実行することはできません。基本的な2つのオプションは次のとおりです。
UIWebView
テキストフィールドとしてマスカレードを使用します。これは簡単ですが、スレッジハンマーであり、特定のユースケースではパフォーマンスが低下する可能性があります。
Core Textを使用して、適切に構成されたNSAttributedStringを表示します。リンクはMacOS用のようですが、CoreTextはiOSにも存在します。フレームワークは非常に強力ですが、学習曲線が急であり、すぐに使用できる編集可能なテキストをサポートしていません。ただし、開始に役立つ可能性のあるさまざまなオープンソースライブラリがあります(DTCoreText。OHAttributedLabelなど)。
次の私有財産にアクセスすることで、プレースホルダーの色を変更できます。警告が表示されますが、非常にうまく機能します。
[aTextField setValue:[UIColor yellowColor]
forKeyPath:@"_placeholderLabel.textColor"];
これを行うための別の方法もあります。カスタム実装でdrawPlaceholderInRectメソッドをオーバーライドできます。
いいえ、デフォルト設定では不可能です。
UITextField
attributedText
プロパティがあり、NSAttributedString
好きな色で任意に設定できます。例えば:
// Create a string:
let attribString = NSMutableAttributedString(string: "username.mysite.com")
// Set the grey color to the "username" portion of the string (the black color is the default for the rest):
attribString.addAttribute(.foregroundColor, value: UIColor.gray, range: NSRange(location: 0, length: 8))
// Set the attributed string to your text field:
textField.attributedText = attribString