Keyboard
Skip support for SwiftUI.View.keyboardType ↗ on Android. Consult the SkipUI module for a complete list of supported SwiftUI.
The following example screens and source code is from SkipUI’s
Showcase sample app
KeyboardPlayground.swift ↗
import SwiftUI
struct KeyboardPlayground: View { @State var text = ""
var body: some View { ScrollView { VStack(spacing: 16.0) { TextField("Default", text: $text) TextField(".autocorrectionDisabled()", text: $text) .autocorrectionDisabled() #if os(macOS) #else ForEach(keyboardTypes, id: \.0) { TextField(".keyboardType(.\($0.0))", text: $text) .keyboardType($0.1) } #endif ForEach(submitLabels, id: \.0) { TextField(".submitLabel(.\($0.0))", text: $text) .submitLabel($0.1) } #if os(macOS) #else ForEach(textInputAutocapitalizations, id: \.0) { TextField(".textInputAutocapitalization(.\($0.0))", text: $text) .textInputAutocapitalization($0.1) } TextField("Combination", text: $text) .submitLabel(.next) .autocorrectionDisabled() .textInputAutocapitalization(.words) #endif } .textFieldStyle(.roundedBorder) .padding() } .toolbar { PlaygroundSourceLink(file: "KeyboardPlayground.swift") } }
#if os(macOS) #else private var keyboardTypes: [(String, UIKeyboardType)] { return [ ("default", UIKeyboardType.default), ("asciiCapable", UIKeyboardType.asciiCapable), ("numbersAndPunctuation", UIKeyboardType.numbersAndPunctuation), ("URL", UIKeyboardType.URL), ("numberPad", UIKeyboardType.numberPad), ("phonePad", UIKeyboardType.phonePad), ("namePhonePad", UIKeyboardType.namePhonePad), ("emailAddress", UIKeyboardType.emailAddress), ("decimalPad", UIKeyboardType.decimalPad), ("twitter", UIKeyboardType.twitter), ("webSearch", UIKeyboardType.webSearch), ("asciiCapableNumberPad", UIKeyboardType.asciiCapableNumberPad), ("alphabet", UIKeyboardType.alphabet) ] } #endif
private var submitLabels: [(String, SubmitLabel)] { return [ ("done", SubmitLabel.done), ("go", SubmitLabel.done), ("send", SubmitLabel.send), ("join", SubmitLabel.join), ("route", SubmitLabel.route), ("search", SubmitLabel.search), ("return", SubmitLabel.return), ("next", SubmitLabel.next), ("continue", SubmitLabel.continue) ] }
#if os(macOS) #else private var textInputAutocapitalizations: [(String, TextInputAutocapitalization)] { return [ ("never", TextInputAutocapitalization.never), ("words", TextInputAutocapitalization.words), ("sentences", TextInputAutocapitalization.sentences), ("characters", TextInputAutocapitalization.characters) ] } #endif}