TextField keyboardType modifier๋ ์ฌ์ฉ์์ ์
๋ ฅ์ ๋ฐ๋ ํค๋ณด๋์ ํ์
์ ์ง์ ํ ์ ์์ TextField("ํ
์คํธ") .keyboardType(.asciiCapable) ์๋ฌธ, ์ซ์, ํน์ ๋ฌธ์ ์
๋ ฅ๋ง ๊ฐ๋ฅํจ (ํ๊ธ, ์ด๋ชจํฐ์ฝ ๋ถ๊ฐ ์์คํค๋ง ๊ฐ๋ฅ) ์ซ์ ๋ฐ ๊ตฌ๋์ default๋ก ์ซ์์ ํน์๋ฌธ์๊ฐ ํ์๋๋ฉฐ ํ๊ธ๊ณผ ์์ด ์
๋ ฅ ๊ฐ๋ฅ ์ฌ์ฉ์๊ฐ URL์ ์
๋ ฅํ๊ธฐ ์ฝ๊ฒ ํ๋จ์ ํน์ ๋ฌธ์๋ฅผ ์ ๊ณตํจ ์ซ์๋ง ์
๋ ฅ ๊ฐ๋ฅ ์์์ ์
๋ ฅ์ด ๊ฐ๋ฅํ๋๋ก ์ซ์์ decimal point ์ ๊ณต ์ซ์ ํค๋ณด๋์ ํด๋ํฐ ๋ฒํธ ์
๋ ฅ์ ์ฌ์ฉ๋๋ ํน์ ๋ฌธ์ ์ ๊ณต ์ด๋ฆ๊ณผ ํด๋ํฐ ๋ฒํธ ์
๋ ฅ์ด ๊ฐ๋ฅํ๋๋ก ๋ ๊ฐ์ง ํค๋ณด๋๋ฅผ ์ ๊ณตํจ (์ด๋ชจ์ง, ์์ด ๊ฐ๋ฅ) ์ด๋ฉ์ผ ์ฃผ์ ์
๋ ฅ์ ์ฌ์ฉ๋๋ @์ . ํน์ ๋ฌธ์๋ฅผ ํ๋จ์ ๋ฐฐ์นํ ํค๋ณด๋ ..
iOS ๐/SwiftUI
Info.plist contained no UIScene configuration dictionary ํ๋ก์ ํธ > Targets > Info.plist > Custom iOS Target Properties > Application Scene Manifest์์ Scene Configuration ์ ์ถ๊ฐํด ์ฃผ๋ฉด ๋จ
TextField๋ ๊ธฐ๋ณธ์ ์ผ๋ก String ํ์
์ Binding ํ ์ ์์ TextField("๊ฐ์ ์
๋ ฅํ์ธ์", text: ) String์ด ์๋ ํ์
์ Bindingํ๋ ๊ฒฝ์ฐ ์๋ฌ ๋ฐ์ํจ. ์ด๋ format์ ์ฌ์ฉํ๋ฉด ํ๋กํผํฐ์ ํ์
์ ๋ฐ๊ฟ์ฃผ์ง ์๊ณ ๋ ํ
์คํธ ํ๋์ ๊ฐ์ ํ์ํ ์ ์์ ใด checkAmount ๊ฐ์ด double์ด๊ธฐ ๋๋ฌธ์ TextField์ text ์ธ์์ Binding์ผ๋ก ์ ๋ฌํ๋ ๊ฒฝ์ฐ ์๋ฌ ๋ฐ์ํจ์ ํ์ธํ ์ ์์ TextField( "Proper name", value: $nameComponents, format: .name(style: .medium) ) ์ฌ์ฉ์์ ์
๋ ฅ์ผ๋ก ๋ถํฐ ์ ๋ฌ๋ฐ์ ๊ฐ์ ์ ์ฅํ ํ๋กํผํฐ๋ฅผ value๋ก ์ ๋ฌํ๊ณ format ํ์์ format ์ธ์๋ก ์ ๋ฌ..
ForEach array, ranges์ ํจ๊ป ๋ฐ๋ณต ์์
์ ํตํด ์ฌ๋ฌ ๋ทฐ๋ฅผ ์์ฑํ ์ ์์ ํด๋ก์ ธ๋ฅผ ํตํด ์คํ๋๋ฉฐ loop์ ๋ชจ๋ ์์ดํ
์ ํ๋ฒ์ฉ ์ํํ๊ฒ ๋จ class test { init() { let titles = ["a", "b", "c", "d", "e"] self.loopAllItems(items: titles) } func loopAllItems(items: [String]) { items.forEach { print($0) } } } ForEach๋ ๊ธฐ์กด์ Swift์์ ์ฌ์ฉํ ๊ณ ์ฐจ ํจ์ forEach์ ๋์๊ณผ ์ฌ์ฉ๋ฒ์ด ๊ฐ์ ScrollView { ForEach(0 ..< 100) { Text("\($0)") } } ForEach๋ฅผ ์ฌ์ฉํด์ ๋ฐ๋ณต๋๋ ๋ทฐ๋ฅผ ๊ฐ๋จํ ์ฝ๋๋ก ํ๋ฉด์ ๊ทธ๋ ค ์ค ์..
๊ธฐ์กด์ ์ฌ์ฉ๋๋ NavigaitonView๋ Deprecated ๋๊ณ NavigationView์ ๋์ผํ๊ฒ NavigationStack์ ์ฌ์ฉํ๋ฉด ๋จ home indicator์ ์๊ณ๋ฅผ ํฌํจํ ์๋จ ์์ญ์๋ ๋ทฐ๋ฅผ ์์น ์ํฌ ์ ์์ผ๋ ์ปจํ
์ธ ๊ฐ ๊ฒน์น๊ธฐ ๋๋ฌธ์ ์ฌ์ฉ์๊ฐ ๋ณด๊ธฐ์ ๋ถํธํ ์ ์์ SwiftUI๋ ์์คํ
UI๋ ๊ธฐ๊ธฐ์ ์ฝ๋ ์์ญ์ ํผํด ์ปดํฌ๋ํธ๋ฅผ ์์น ์ํฌ ์ ์์ผ๋ ์คํฌ๋กค ์ ์์คํ
์์ญ์ ๊ฒน์น ์ ์์ ๋ค๋น๊ฒ์ด์
์ ์ฌ์ฉํ๋ฉด ์๋จ์ด ๋ค๋น๊ฒ์ด์
์์ญ์ด ๋๋ฏ๋ก ์์คํ
์์ญ๊ณผ ์ปจํ
์ธ ๊ฐ ๊ฒน์น์ง ์๊ฒ ํ ์ ์์ var body: some View { NavigationStack { Form { Section { Text("red") Text("yellow") Text("black") } } .navig..
Form ์ ํ ๊ณต์ ๋ฌธ์ ๋ทฐ๋ฅผ ํฌํจ ์ํฌ ์ ์๋ Containe Control์ ๊ทธ๋ฃนํ ํ ์ ์์. ํน์ ์ปจํธ๋กค์ ๋ํด ์ง์ ๋ UI๋ฅผ ๋ณด์ฌ์ค. ์๋ ๊ธ ์ฐธ๊ณ ์ฃผ๋ก ์ค์ ํ๋ฉด์ด๋ ๊ธฐ๋ณธ ์ฑ์ ๋ฆฌ์คํธ์์ ์ฌ์ฉ๋จ Form ์์ญ ์คํฌ๋กค๋ง ๊ฐ๋ฅ struct Form where Content : View ์ฝ๋ ์ ์ฒด ๊น ํ๋ธ ๋งํฌ Group ํผ์ ์ต๋ 10๊ฐ์ ๋ทฐ๋ฅผ ํฌํจ ํ ์ ์๊ธฐ ๋๋ฌธ์ Group ์ ์ฌ์ฉํ๋ฉด ๋ ๋ง์ ๋ทฐ๋ฅผ ํฌํจ ์ํฌ ์ ์์ Form { Group { Text("Hello, world! 1") Text("Hello, world! 2") Text("Hello, world! 3") Text("Hello, world! 4") Text("Hello, world! 5") Text("Hello, world..