TextField/Toggle/Picker (TextField/Toggle/Picker)
«ورودی های SwiftUI» یعنی کنترل های فرم. «TextField» برای متن است. «Toggle» برای بله/خیر است. «Picker» برای انتخاب گزینه است. همه با «State» وصل می شوند تا مقدار زنده بماند. مثل فرم ثبت نام مدرسه.
فرم پایه با TextField، Toggle و Picker
یک فرم ساده می سازیم. سپس متن، وضعیت، و انتخاب را ذخیره می کنیم. بنابراین داده ها همزمان به روز می شوند.
import SwiftUI
struct InputsDemo: View {
@State private var name: String = ""
@State private var enabled: Bool = true
@State private var choice: Int = 1
var body: some View {
Form {
TextField("Name", text: $name)
Toggle("Enabled", isOn: $enabled)
Picker("Choice", selection: $choice) {
Text("One")
.tag(1)
Text("Two")
.tag(2)
}
}
}
}
import SwiftUI
struct ContentView: View {
var body: some View {
InputsDemo()
}
}
import SwiftUI
@main
struct MyApp: App {
var body: some Scene {
WindowGroup {
ContentView()
}
}
}
گام های عملی فرم پایه
- سه State تعریف کن.
- یک Form بساز.
- TextField، Toggle، Picker را اضافه کن.
نکته: برچسب ها را کوتاه بنویس. بنابراین فرم خواناتر می شود.
Picker سگمنت شده و Stepper
وقتی چند انتخاب داری، «Segmented Picker» عالی است. همچنین با «Stepper» مقدار عددی را به آرامی عوض کن.
import SwiftUI
struct InputsAdvancedDemo: View {
@State private var selection: Int = 0
@State private var count: Int = 1
var body: some View {
Form {
Picker("Options", selection: $selection) {
Text("A")
.tag(0)
Text("B")
.tag(1)
Text("C")
.tag(2)
}
.pickerStyle(.segmented)
Stepper("Count: \(count)", value: $count, in: 1...5)
}
}
}
import SwiftUI
struct ContentView: View {
var body: some View {
InputsAdvancedDemo()
}
}
import SwiftUI
@main
struct MyApp: App {
var body: some Scene {
WindowGroup {
ContentView()
}
}
}
گام های عملی پیشرفته
- State برای انتخاب و شمارش بساز.
- Picker را سگمنت شده تنظیم کن.
- Stepper را با بازه امن محدود کن.
نکته: اگر گزینه ها کم هستند، سگمنت بهتر دیده می شود. بنابراین انتخاب سریع تر می شود.
پیوندهای مفید
راهنمای «ورودی های SwiftUI» را همیشه از همین صفحه ببین. برای ساخت فرم کامل، به Form برو. همچنین بخش بندی با Section مرتب تر می شود.
جمع بندی سریع
- TextField برای متن است.
- Toggle برای روشن/خاموش است.
- Picker برای انتخاب گزینه است.
- همه با State همگام می مانند.