Användarinmatning är grunden för användarens interaktion med en mobil applikation. Produktens användbarhet beror på korrekt implementering av UITextField på iOS, EditText på Android och tangentbord i mobila applikationer. Enligt Apple HIG är felaktig hantering av användarinmatning en vanlig orsak till negativa recensioner.
Viktiga punkter
Användarinmatning i mobila applikationer är processen att överföra data från användaren till applikationen via pekskärmen och det virtuella tangentbordet. På iOS är huvudverktyget UITextField; på Android är det EditText. Användarinmatning omfattar textfält, registreringsformulär, sökfrågor, telefonnummer och bekräftelsekoder. Kvaliteten på implementeringen av användarinmatning påverkar hastigheten för ifyllning av formulär och konverteringen av den mobila appen.
Felaktig hantering av användarinmatning i mobilutveckling leder till valideringsfel, sårbarheter och användarförlust. Enligt Statista (2025) tar 67% av användarna bort en mobil app efter två misslyckade inmatningsförsök. Korrekt implementering av användarinmatning inkluderar konfiguration av tangentbordstyp, validering, formatering och autofyll. Inom mobilutveckling är dessa aspekter standardiserade av båda plattformarna.
Tangentbord i mobila applikationer konfigureras via keyboardType på iOS och inputType på Android. Användarinställningar inkluderar autokorrigering, autofyll och säker lösenordsinmatning. Responder Chain på iOS och fokus på Android styr visning och döljande av tangentbordet. För användarinmatning i mobila applikationer är Keyboard Avoidance avgörande — innehåll får inte skymmas av tangentbordet.
På iOS är de huvudsakliga användarinmatnings-elementen UITextField för enradig text och UITextView för flerradig text. Båda stöder delegaterna UITextFieldDelegate och UITextViewDelegate för att hantera början, ändring och slut av redigering. Konfiguration av tangentbordet i iOS mobila appar görs via egenskaperna keyboardType, returnKeyType och isSecureTextEntry.
Egenskapen textContentType tipsar systemet om vilken data som förväntas i fältet — username, password, oneTimeCode, emailAddress. Detta aktiverar autofyll från nyckelringen och snabbar upp användarinmatning. För fält med Secure Text Entry, ange .password så att lösenordshanteraren sparar inloggningsuppgifterna korrekt. Användning av textContentType förbättrar användarinmatning i mobila applikationer.
let textField = UITextField()
textField.placeholder = "Email"
textField.keyboardType = .emailAddress
textField.textContentType = .emailAddress
textField.autocorrectionType = .no
textField.becomeFirstResponder()
First Responder är det aktiva fältet som tar emot händelser från tangentbordet. Anrop av becomeFirstResponder() visar tangentbordet, resignFirstResponder() döljer det. Responder Chain kontrollerar sekventiellt om ett element kan hantera en händelse. När det finns flera fält är det viktigt att hantera First Responder så att tangentbordet inte förblir öppet. Användarinmatning i mobila applikationer hanteras också av textFieldShouldReturn — tryck på Return växlar till nästa fält.
På Android är motsvarigheten till UITextField EditText, som stöder enrads- och flerradsläge via attributet inputType. För Material-fält, använd TextInputLayout från biblioteket com.google.android.material — det lägger till flytande ledtråd, teckenräknare och felstöd. Användarinmatning i Android mobila appar konfigureras via inputType och imeOptions.
Attributet inputType bestämmer tangentbordstyp och inmatningsläge: text för vanlig text, textPassword för lösenord, number för siffror, phone för telefonknappsats. imeOptions styr åtgärden på Enter-knappen — Done, Next, Search, Send. Kombinera värden med bitvis ELLER: text|textCapSentences. Tangentbord i Android mobila applikationer stöder autofyll via autofillHints.
val editText = EditText(this)
editText.inputType = InputType.TYPE_CLASS_PHONE
editText.imeOptions = EditorInfo.IME_ACTION_DONE
editText.autofillHints = "phone"
val layout = TextInputLayout(this)
layout.hint = "Номер телефона"
layout.addView(editText)
TextInputLayout.setError() visar ett felmeddelande under inmatningsfältet. Kombinera omedelbar validering via TextWatcher och slutgiltig validering vid formulärskickning. Användarinmatning i mobila applikationer involverar också fokus — requestFocus() aktiverar ett fält och visar tangentbordet. Använd clearFocus() för att dölja tangentbordet när användarinmatning på Android är klar.
Tangentbord i mobila applikationer får inte täcka inmatningsfält — detta är ett grundläggande UX-krav. Keyboard Avoidance är en teknik för att flytta innehåll när tangentbordet visas. På iOS, använd UIResponder.keyboardWillShowNotification för att få tangentbordets storlek och flytta scrollView. På Android, ange adjustResize i manifestet eller använd CoordinatorLayout. Tangentbord i mobila applikationer konfigureras olika på de två plattformarna, men målet är detsamma — innehåll är alltid synligt.
På iOS, prenumerera på notifikationerna keyboardWillShowNotification och keyboardWillHideNotification via NotificationCenter. I hanteraren, få tangentbordets storlek från userInfo och ställ in contentInset på UIScrollView. Alternativt, använd IQKeyboardManager som automatiskt hanterar förskjutningen. Användarinmatning i iOS mobilutveckling kräver obligatorisk tangentbordshantering för bekväm UX.
På Android är huvudmetoden android:windowSoftInputMode="adjustResize" i manifestet. Denna flagga komprimerar layouten när tangentbordet visas. För CoordinatorLayout, använd Behavior som lyfter knappar och fält. Använd ViewCompat.setOnApplyWindowInsetsListener för exakt marginalkontroll. Tangentbordet i en Android mobil app hanteras också av OnGlobalLayoutListener.
Validering av användarinmatning är ett obligatoriskt steg vid databehandling i mobila applikationer. Utan den tar appen emot felaktig data, vilket leder till fel och sårbarheter. Användarinmatning i mobila applikationer kräver två tillvägagångssätt: omedelbar validering (vid varje tecken) för nummer och koder, och slutgiltig validering för e-post och lösenord. Input Mask formaterar automatiskt telefon, datum och kortnummer.
Input Mask definierar ett inmatningsmönster enligt vilket texten automatiskt formateras. Exempel på mask för ett ryskt telefonnummer: "+7 (___) ___-__-__". På iOS implementeras Input Mask via delegaten textField(_:shouldChangeCharactersIn:replacementString:). På Android, använd InputFilter med spårning av teckenposition. För internationella nummer, använd biblioteket libphonenumber från Google.
func textField(
_ textField: UITextField,
shouldChangeCharactersIn range: NSRange,
replacementString string: String
) -> Bool {
guard let text = textField.text else { return true }
let masked = applyPhoneMask(text, mask: "+7 (***) ***-**-**")
textField.text = masked
return false
}
| Parameter | iOS | Android |
|---|---|---|
| Enradigt fält | UITextField | EditText |
| Flerradigt fält | UITextView | EditText + textMultiLine |
| Flytande ledtråd | attributedPlaceholder | TextInputLayout |
| Tangentbordstyp | keyboardType | inputType |
| Säker inmatning | isSecureTextEntry | textPassword |
| Autofyll | textContentType | autofillHints |
| Delegat eller Listener | UITextFieldDelegate | TextWatcher |
| Valideringsfel | Anpassad UILabel | TextInputLayout.setError() |
Vanliga frågor
Anropa becomeFirstResponder() på UITextField eller UITextView. För att dölja det, använd resignFirstResponder(). Se till att fältet är synligt och inte blockerat.
inputType bestämmer tangentbordstyp (text, siffror, e-post). imeOptions styr åtgärden på Enter-knappen (Done, Next, Search). De fungerar oberoende och kombineras ofta.
Använd delegaten textField(_:shouldChangeCharactersIn:replacementString:) och formattera texten manuellt. Eller använd InputMask-biblioteket med mönster som "+7 ([000]) [000]-[00]-[00]".
Ange android:windowSoftInputMode="adjustResize" i manifestet. Om du använder CoordinatorLayout, kontrollera Behavior-konfigurationen för att lyfta knappar och fält.
På iOS, använd textContentType = .oneTimeCode. På Android, använd autofillHints = "smsCode". Systemet fyller automatiskt i koden från SMS vid mottagning.
Sammanfattning
Vi utvecklar en mobil applikation nyckelfärdigt
IT Sectr skapar iOS- och Android-applikationer för startups och företag sedan 2017. Vi ger dig råd och föreslår den bästa lösningen.