0

最初のテキストが「username.mysite.com」であるUITextFieldがあります。デフォルトの色(黒)が設定されています。

グレーのような別の色の「ユーザー名」が欲しいのですが。出来ますか?

プレースホルダーが「url」ではなく、ユーザーは「クリアボタン」をクリックできます。

4

4 に答える 4

2

UITextFieldを直接使用して実行することはできません。基本的な2つのオプションは次のとおりです。

  1. UIWebViewテキストフィールドとしてマスカレードを使用します。これは簡単ですが、スレッジハンマーであり、特定のユースケースではパフォーマンスが低下する可能性があります。

  2. Core Textを使用して、適切に構成されたNSAttributedStringを表示します。リンクはMacOS用のようですが、CoreTextはiOSにも存在します。フレームワークは非常に強力ですが、学習曲線が急であり、すぐに使用できる編集可能なテキストをサポートしていません。ただし、開始に役立つ可能性のあるさまざまなオープンソースライブラリがあります(DTCoreText。OHAttributedLabelなど)。

于 2012-04-04T09:12:29.380 に答える
0

次の私有財産にアクセスすることで、プレースホルダーの色を変更できます。警告が表示されますが、非常にうまく機能します。

[aTextField setValue:[UIColor yellowColor] 
            forKeyPath:@"_placeholderLabel.textColor"];

これを行うための別の方法もあります。カスタム実装でdrawPlaceholderInRectメソッドをオーバーライドできます。

于 2012-04-04T08:52:32.510 に答える
0

いいえ、デフォルト設定では不可能です。

于 2012-04-04T08:49:10.140 に答える
0

UITextFieldattributedTextプロパティがあり、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
于 2022-03-03T10:37:05.537 に答える