์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- BOJ
- Flutter
- SwiftUI
- ํจ์คํธ์บ ํผ์ค
- ํ๋ก๊ทธ๋๋จธ์ค
- MVVM
- BFS
- visionOS
- raywenderlich
- swift
- realm
- Kuring
- Xcode
- tableView
- ios
- node.js
- XCTest
- combine
- RxSwift
- arkit
- TCA
- UIKit
- rxcocoa
- Lv2
- SnapKit
- CollectionView
- reactorkit
- designpattern
- ๋ฐฑ์ค
- Swfit
- Today
- Total
๋ชฉ๋กTextField (3)
lgvv98
[TCA] FocusState TCA์ FocusState ์ฌ์ฉ๋ฐฉ๋ฒ ์ ๋ฆฌ - ๋ชฉ์ฐจ - FocusState ์ฌ์ฉ ์์ - FocusState ์ฌ์ฉ ์์ SwiftUI์ @FocusState๋ TCA ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ `bind` view Modifier๋ฅผ ํตํด ์ฌ์ฉ - ์์ธํ ๋ถ๋ถ์ ์ฝ๋์ ์ฃผ์์ ํ์ธ // MARK: - Feature domain struct FocusDemo: Reducer { struct State: Equatable { @BindingState var focusedField: Field? // โ 2. ํฌ์ปค์ค ์คํ ์ดํธ๋ก ์ฌ์ฉํ bindingState๋ฅผ ์ ์ธ @BindingState var password: String = "" @BindingState var username: String..
TextField, SecureField โ UIKit์์๋ ์ต์ํ๋ ๊ฒ๋ค์ธ๋ฐ, SwiftUI์์๋ ๋ฏ์ค๋ค. ์ฌ๊ธฐ์ ์ฃผ์ํ ์ ์ TextField์ text๋ Binding์ด๋ผ์ @State์ $์ ์ฃผ์ํ์. TextField๋ ์ฐ๋ฆฌ๊ฐ ๊ธฐ์กด์ ์๋ TextField์ ๊ฐ๋ค. SecureField๋ password๋ฅผ ์ ๋ ฅํ ๋, ๊ธ์๊ฐ ๋ณด์ด์ง ์๊ฒ๋ ๊ฒ์์ ์์ผ๋ก ์จ๊ฒจ์ฃผ๋ ํ๋์ด๋ค. ์ฝ๋๊ฐ ๋ฌด์ฒ ๊ฐ๋จํ๋๊น ์ฑ ์ฝ์ด๋ณด์! โ ์ฝ๋ import SwiftUI struct ContentView: View { @State private var username: String = "" @State private var password: String = "" var body: some View { VStack(spac..
โ ์ด๋ฒ ์๊ฐ์๋ TextView์ TextField์ ๋ํด์ ๋น๊ตํด๋ณผ ์์ ์ด์ผ ์๋์ ์ด๋ฏธ์ง๋ฅผ ์ฐ์ ๋ณด์. ๋งจ ์์๋ ํ ์คํธ ํ๋ ์๋์๋ ํ ์คํธ ๋ทฐ๋ฅผ ํ์ฉํ์ฌ ์์ฑํ์๋ค. โ ๋์ ๋ํ์ ์ธ ์ฐจ์ด๋ฅผ ์ฐ์ ใ ใ ใน์๋ณด์. ๐ TextField TextView placeholder๊ฐ ์๋๊ฐ? O X ์ฌ๋ฌ์ค๋ก ์์ฑํ ์ ์๋๊ฐ? X O โ ๊ทธ๋ฌ๋ฉด ์๋ฒ์๋ rx๋ฅผ ์ฌ์ฉํ ๋๋ ์ด๋ค ์ฐจ์ด๊ฐ ์์๊น? ๐ ๋ด๊ฐ ํ๋ก์ ํธ์์ ์ฌ์ฉํ ์ฝ๋. ์ฝ๊ฒ ๋งํด์ TextView๋ฅผ ์ ๋ ฅํ๊ธฐ ์์ํ์ ๋, rx๋ฅผ ํตํด์ ์ด๋ป๊ฒ ์ฒ๋ฆฌํ๋์ง๋ฅผ ๋ณผ ์ ์์๋ค. RequestTextView.rx.didBeginEditing .bind{ _ in if self.RequestTextView.text == "๊ฐ๋จํ ๋ฉ์์ง๋ฅผ ์ ์ด๋ณด์ธ์~!" { s..