SwiftUIです。TextFieldのプレースホルダの色を変えるには?
2023-07-19 05:06:57
質問
TextFieldのプレースホルダーの色を変更したいのですが、そのためのメソッドが見当たりません。
を設定しようとしたのですが
foregroundColor
と
accentColor
というようにしても、プレースホルダーの色は変わりません。
以下はそのコードです。
TextField("Placeholder", $text)
.foregroundColor(Color.red)
.accentColor(Color.green)
もしかして、まだAPIがない?
どのように解決するのですか?
apiは(まだ)ありません。 しかし、あなたはできる :
カスタム
placeholder
モディファイアを使って
任意のビュー
の保持者として
その他のビュー
!例えば
TextField("", text: $text)
.placeholder(when: text.isEmpty) {
Text("Placeholder recreated").foregroundColor(.gray)
}
<イグ
???? これは単純な
ZStack
の中でできることです。
View
のような拡張子を使用します。
extension View {
func placeholder<Content: View>(
when shouldShow: Bool,
alignment: Alignment = .leading,
@ViewBuilder placeholder: () -> Content) -> some View {
ZStack(alignment: alignment) {
placeholder().opacity(shouldShow ? 1 : 0)
self
}
}
}
???? これで 任意の を適用できるようになりました。
✅興味があれば、こちらもどうぞ。 サイズ変更可能なグラデーションを任意のビューに適用する方法
???? シンプルにする技術
ほとんどの場合、文字列と灰色のプレースホルダーを渡すだけでよいのです。
TextField("", text: $text)
.placeholder("Placeholder", when: text.isEmpty)
を使えば、上記の拡張子の周りに簡単なラッパーを書くことができます。
extension View {
func placeholder(
_ text: String,
when shouldShow: Bool,
alignment: Alignment = .leading) -> some View {
placeholder(when: shouldShow, alignment: alignment) { Text(text).foregroundColor(.gray) }
}
}
こんな感じ?
関連
-
[解決済み] iOSのステータスバーの文字色を変更する方法
-
[解決済み] Swift Betaのパフォーマンス:配列のソート
-
[解決済み] Swiftの@selector()?
-
[解決済み] UITextFieldのテキスト変更イベント
-
[解決済み】Swiftでプレースホルダーの文字色を変更する方法
-
[解決済み] swiftにおける "precondition "と "assert "の違いとは?
-
[解決済み] 小数点以下2桁に切り上げ
-
[解決済み] アニメーションによる円の描画
-
[解決済み] Swift - サブクラスでオーバーライドする必要があるクラスメソッド
-
[解決済み] Swift 3 GCD API変更後のdispatch_once
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Swift Error fatal error: Optional value のアンラップ中に予期せず nil を発見した。
-
[解決済み】Swiftでプレースホルダーの文字色を変更する方法
-
[解決済み] SwiftUI。TextFieldをファーストレスポンダーにするには?
-
[解決済み] Swift - 複数条件でオブジェクトの配列を並べ替える
-
[解決済み] Xcode 8.3 betaの「String interpolation produces a debug description for an optional value; did you mean to make this explicit?
-
[解決済み] Swift- Remove Push Notification Badge number?
-
[解決済み] swiftでオプションのクロージャを作るにはどうしたらいいですか?
-
[解決済み] swift 3.0 Data to String?
-
[解決済み] Swift で CGFloat を切り上げる
-
[解決済み] 弱い自分はどこへ行くのか?