isEdit
みたいな編集中かどうかの Bool 値を使っていけそうです。
isEdit
が true
なら .green
で false
なら .clear
を指定してます。
ContentView.swift
1import SwiftUI
2
3struct ContentView: View {
4
5 @State private var isEdit = false // 編集中か
6 @State private var title = ""
7
8 var body: some View {
9 VStack {
10 TextField("タイトルを入力", text: $title, onEditingChanged: { (changed) in
11 // 編集中: true, 編集終了: false
12 self.isEdit = changed
13 }) {
14 }
15 .shadow(color: self.isEdit ? .green : .clear,
16 radius: 5.0)
17 }
18 }
19}
他には isEdit
の値で TextField を切り替えるのもいけそうですが
titleはバインドしているので問題ないのですが キーボードがおりてしまいますね。
import SwiftUI
struct ContentView: View {
@State private var isEdit = false // 編集中か
@State private var title = ""
var body: some View {
VStack {
if isEdit {
TextField("タイトルを入力", text: $title, onEditingChanged: { (changed) in
// 編集中: true, 編集終了: false
self.isEdit = changed
}) {
}
.shadow(color: .green,
radius: 5.0)
} else {
TextField("タイトルを入力", text: $title, onEditingChanged: { (changed) in
// 編集中: true, 編集終了: false
self.isEdit = changed
}) {
}
}
}
}
}
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/05/03 08:10