Slik samler du inn tekst ved hjelp av UITextField

Mens brukergrensesnitt på Apple iOS-apper ofte er sammensatt av morsomme ting som knapper, skyvekontroller og bevegelser, vil du før eller senere skrive en app som trenger god, gammeldags tekstinntasting. I dette innlegget skal vi bygge et enkelt prosjekt for å lære hvordan du bruker UITextField til å samle tekstbaserte innspill.

Hvis du er kjent med å lage et grunnleggende enkeltvisningsprosjekt, kan du gjerne gjøre det nå og deretter hoppe ned til "Sette opp brukergrensesnittet." Følg ellers nedenfor for å lage et nytt prosjekt.

Enkeltvisning-prosjekt

Åpne Xcode, og velg Ny fra Fil-menyen og deretter Ny prosjekt. Et nytt arbeidsområdevindu vises, og du vil bli presentert med flere applikasjonsmaler du kan velge mellom.

På applikasjonen til venstre velger du Program fra iOS-delen. Velg program for enkeltvisning og klikk på Neste-knappen. ( Figur A )

Figur A

I neste rute skriver du inn TextMe for produktnavnet og com.myappcompany som firmaidentifikator. (Du må gjerne bytte ut ditt eget produktnavn og firmanavn).

La klasseprefikset være som den er. Det skal være blankt - XYZ er bare et hint til et sted.

Forsikre deg om at Bruk automatisk referansetelling er merket og fjern merket for de andre.

Sett Device Family til iPhone, og klikk Neste. ( Figur B )

Figur B

En ny rute vises der du spør hvor du vil lagre prosjektet. XCode oppretter en TextMe-prosjektmappe i katalogen du velger.

Når prosjektet er opprettet, vil Xcode åpne et arbeidsvindu med det nye prosjektet.

Sette opp brukergrensesnittet

I ruten Filer og grupper klikker du på ViewController.xib. Etter at den har åpnet seg i Interface Builder, velger du Vis-objektet, klikker på Attributterinspektøren og deretter endrer visningens bakgrunnsfarge til noe annet enn hvitt.

(Grafisk designtips: det er generelt ikke optimalt å velge helt svart som bakgrunnsfarge for en visning. Ren svart skaper en veldig intens, krevende følelse som lett kan bli slitsom for øynene hvis den blir brukt for mye. Lagre ren svart for virkelig viktige ting, og bruk gråtoner når du bare vil ha en mørk bakgrunn.)

Gå deretter til Object Library som ligger nederst til høyre på arbeidsområdet og dra et UITextField ut på utsikten. Dra håndtakene i størrelse for å gjøre det omtrent som bredden på visningen. Figur C oppsummerer situasjonen så langt.

Figur C

Vi er nå klare til å koble UITextField og begynne å eksperimentere med det. Først kobler vi et stikkontakt til ViewController-klassen vår, slik at vi kan manipulere tekstfeltets egenskaper og hente verdien. (Se Komme i gang med iOS-visninger og visningskontrollere: Del 2 for å lære mer om utsalgssteder.)

Klikk på Assistant Editor-knappen i øverste høyre hjørne av arbeidsområdet. Dette vil åpne ViewController.h i vinduet ved siden av Interface Builder View. Kontroll-dra fra UITextField til et punkt rett under ordet @ grensesnitt og slipp musen; Xcode viser et popup-vindu som hjelper deg med å etablere stikkontakten.

Skriv inn "myTextField" i Navn-feltet og klikk på Koble til. Xcode vil opprette en eiendomsdefinisjon for UITextField, erklære det som en IBOutlet og koble den til UITextField i xib. Klikk på Standard Editor-knappen for å gå tilbake til standard redigeringsmodus. Figur D viser dialogboksen for utløpsforbindelse og plasseringene til Editor-knappene.

Figur D

På dette tidspunktet har vi en forbindelse som vi kan bruke til å angi og hente verdien av tekstfeltet, men vi vil trenge mer enn det for å gjøre det mulig for brukeren vår å legge inn data med skjermtastaturet.

UITextField støtter bruk av et delegert objekt for å håndtere redigeringsrelaterte varsler. Når visse handlinger oppstår, vil UITextField kalle delegerte metoder som gjør det mulig å tilpasse og kontrollere atferden. De forskjellige metodene er beskrevet i detalj i UITextFieldDelegate-protokollreferansen. Vi vil at ViewController-klassen skal fungere som delegat, og at den må samsvare med protokollen. La oss konfigurere det nå.

I View Files and Groupes-ruten velger du ViewController.h og gjør endringen vist med fet skrift nedenfor.

 #importere 
 @interface ViewController: UIViewController 
 @ eiendom (sterk, ikke-atomisk) IBOutlet UITextField * myTextField; 
 @slutt 

Med dette på plass forventer Xcode nå at klassen vår skal overholde protokollen og vil også kunne gi oss autofullstendig assistanse når vi skriver inn metodesignaturer.

Vi må også fortelle UITextField hvem delegaten vil være. Velg ViewController.xib og kontroller dra fra UITextField til Files Owner; Når du slipper musen, velger du "delegat" fra popup-en som vist i figur E.

Figur E

Bygg og kjør applikasjonen og trykk i tekstfeltet. Skjermtastaturet skal nå vises, og vi kan legge inn tekst. Dessverre er det alt vi kan gjøre. Å trykke på Retur-tasten avviser ikke tastaturet, og klassen vår har ingen anelse om at det er lagt inn noen tekst. Vi må implementere bare en delegert metode for å få alt til å fungere.

Velg ViewController.m og skriv inn følgende nye metode under ViewDidLoad.

 - (BOOL) textFieldShouldReturn: (UITextField *) textField 
 { 
 NSLog (@ "Du skrev% @", self.myTextField.text); 
 self.myTextField resignFirstResponder; 
 return YES; 
 } 

Per protokoll når vi trykker på Returner vil tekstfeltet nå kalle textFieldShouldReturn: delegate-metoden i klassen vår. Dette gir oss en sjanse til å gjøre hva vi trenger med innholdet i feltet og deretter avskjedige tastaturet ved å ringe resignFirstResponder. Bygg og kjør appen igjen. Når du trykker på Retur-tasten, vises teksten du skrev inn i Xcode-konsollloggen. UITextField er ganske kraftig, men denne enkle metoden er alt du trenger for å begynne å samle inn tekst i appene dine.

UITextField Attributter

Mye av kraften til UITextField kommer fra å konfigurere attributtene. Ta deg tid til å utforske de forskjellige attributtene som er vist i figur E som lar deg endre utseendet og oppførselen til både tekstfeltet og tastaturet. I figur F viser for eksempel rullegardinboksen andre mulige måter for å returnere-tasten.

Figur F

En annen pris du vil utforske er Clear Button. I figur E er det satt til 'Vises mens du redigerer', noe som vil føre til at tekstfeltet gjør en tydelig knapp tilgjengelig i feltet mens tastaturet vises. Hvis du trykker på den tydelige knappen, slettes all teksten i feltet i en enkel bevegelse.

UITextField er et grunnleggende verktøy i hver iOS-programmerers verktøykasse. Med denne grunnleggende forståelsen i hånden er du godt på vei til å bruke den effektivt.

Les også:

  • Forstå tilstandene og overgangene til en iOS-app
  • Kjør flere iOS-appnedlastinger med bedre ikoner
  • Komme i gang med iOS-visninger og visningskontrollere: Del 2
  • Komme i gang med iOS-visninger og visningskontrollere: Del 1

© Copyright 2021 | pepebotifarra.com