Dijeli putem


Funkcija SetFocus

Odnosi se na: Aplikacije od gotovih gradivnih elemenata Aplikacije stvorene prema modelu

Pomiče ulazni fokus na određenu kontrolu.

Opis

Funkcija SetFocus daje nekoj kontroli ulazni fokus. Tada ta kontrola prihvaća korisnikovo pritiskanje tipki, dopuštajući upisivanje u kontrolu za unos teksta ili korištenje tipke Enter za odabir nekog gumba. Korisnik može koristiti i tipku Tab, dodir, miš ili neki drug pokret da bi promijenio ulazni fokus. Ponašanje tipke Tab regulira se svojstvom TabIndex.

Upotrijebite funkciju SetFocus kako biste postavili fokus kada (svaki s primjerom u nastavku):

  • novoizložena je ili novoomogućena neka ulazna kontrola, za vođenje korisnika u daljem radu i bržem unosu podataka.
  • obrazac bude potvrđen, za fokusiranje i prikazivanje problematične kontrole unosa radi brzog razrješavanja.
  • prikaže se neki zaslon, za fokusiranje prve kontrole unosa sa svojstvom OnVisible Screen.

Upravljanje s fokusom može se vizualno razlikovati na temelju svojstava FocusedBorderColor i FocusedBorderThickness.

Ograničenja

Funkcija SetFocus može se koristiti samo sa sljedećim:

Ne možete postaviti fokus na kontrole koje se nalaze unutar kontrole galerije , Uređivanje kontrole obrasca ili Komponenta. SetFocus se može koristiti s kontrolom na zaslonu koji se može pomicati.

Ne možete postaviti fokus na kontrole koje su unutar kontrole Spremnik.

Fokus možete postaviti samo na kontrole na istom zaslonu kao i formulu koja sadrži poziv za funkciju SetFocus.

Pokušaj postavljanja fokusa na kontrolu koja ima svoje svojstvo DisplayMode postavljeno na Disabled nema učinka. Fokus će ostati tamo gdje je bio prije.

Na Appleu iOS će se meka tipkovnica automatski prikazati samo ako je SetFocus pokrenut izravnom radnjom korisnika. Na primjer, pozivanje svojstvo OnSelect nekog gumba prikazat će softversku tipkovnicu, dok pozivanje iz svojstva OnVisible zaslona neće.

Funkciju SetFocus možete koristiti samo u formulama ponašanja.

Sintaksa

SetFocus( kontrola )

  • Control – obavezno. Kontrola kojoj se daje ulazni fokus.

Primjeri

Fokusiranje na novoizloženu ili novoomogućenu kontrolu unosa

Mnoge košarice omogućuju klijentu da adresu dostave koristi kao adresu naplate, smanjujući time potrebu unošenja istih podataka dva puta. Ako želite drugu adresu za naplatu, omogućeni su okviri za unos teksta adrese za naplatu i korisno je voditi klijenta do tih novoomogućenih kontrola radi bržeg unosa podataka.

Animacija odabira upotrebe prilagođene adrese naplate, s fokusom premještenim na kontrolu unosa naziva naplate, isključuje automatsku sinkronizaciju s adresom dostave.

Ovdje se mogu koristiti mnoge formule, ali ona koja pomiče fokus jest na svojstvu OnUncheck kontrole Check box:

SetFocus( BillingName )

Tipka Tab također se može koristiti za brzo premještanje fokusa s jednog polja na drugo. Radi bolje ilustracije, tipka Tab nije korištena u animaciji.

Da biste stvorili ovaj primjer:

  1. Stvorite novu aplikaciju.
  2. Dodajte kontrole Label s tekstom „Adresa dostave”, „Ime:”, „Adresa:”, „Adresa naplate”, „Ime:” i „Adresa:” i postavite ih kao što je prikazano u animaciji.
  3. Dodajte kontrolu Text Input i preimenujte je u ShippingName.
  4. Dodajte kontrolu Text Input i preimenujte je u ShippingAddress.
  5. Dodajte kontrolu Check box i preimenujte je u SyncAddresses.
  6. Postavite svojstvo Text ove kontrole na formulu "Use Shipping address as Billing address".
  7. Dodajte kontrolu Text Input i preimenujte je u BillingName.
  8. Postavite svojstvo Default ove kontrole na formulu ShippingName.
  9. Postavite svojstvo DisplayMode ove kontrole na formulu If( SyncAddresses.Value, DisplayMode.View, DisplayMode.Edit ). Ovo će automatski omogućiti ili onemogućiti ovu kontrolu na temelju stanja te kontrole potvrdnog okvira.
  10. Dodajte kontrolu Text Input i preimenujte je u BillingAddress.
  11. Postavite svojstvo Default ove kontrole na formulu ShippingAddress.
  12. Postavite svojstvo DisplayMode ove kontrole na formulu If( SyncAddresses.Value, DisplayMode.View, DisplayMode.Edit ). Ovo će automatski omogućiti ili onemogućiti ovu kontrolu na temelju stanja te kontrole potvrdnog okvira.
  13. Postavite svojstvo Default potvrdnog okvira na formulu true. Ovo će zadati da se za adresu naplate koristi ista vrijednost kao za adresu dostave.
  14. Postavite svojstvo OnCheck potvrdnog okvira na formulu Reset( BillingName ); Reset( BillingAddress ). Ako korisnik odluči sinkronizirati adrese dostave i naplate, to će izbrisati svaki korisnički unos u poljima Adresa naplate, čime se dopušta svojstvu Default svakog od njih da izvlači vrijednosti iz odgovarajućih polja Adresa dostave.
  15. Postavite svojstvo OnUncheck potvrdnog okvira na formulu SetFocus( BillingName ). Ako korisnik odabere koristiti neku drugu adresu naplate, to će fokus prebaciti na prvu kontrolu u adresi naplate. Te će kontrole već biti omogućene zbog njihovih svojstava DisplayMode.

Fokusiranje na pitanja provjere valjanosti

Napomena

Iako se čini da ovaj primjer predstavlja kontrolu Edit form, nažalost ta kontrola još uvijek ne podržava funkciju SetFocus. Umjesto toga, ovaj primjer koristi pomični zaslon za smještaj ulaznih kontrola.

Pri provjeri valjanosti nekog obrasca može biti korisno ne samo prikazati poruku ako postoji problem, nego i dovesti korisnika u problematično polje. To može biti osobito korisno ako se dotično polje pomakne sa zaslona i ne bude vidljivo.

Animacija provjere valjanosti obrasca za unos podataka i prikazivanja ne samo poruke, već i postavljanja ulaznog fokusa na problematičnu kontrolu unosa, čak i ako se pomakne sa zaslona.

U ovoj se animaciji tipka za provjeru valjanosti opetovano pritiska sve dok se sva polja ispravno ne popune. Imajte na umu da se pokazivač miša ne pomiče prema dolje s vrha zaslona. Umjesto toga, funkcija SetFocus pomaknula je ulazni fokus na kontrolu koja zahtijeva pažnju ovom formulom:

If( IsBlank( Name ),
        Notify( "Name requires a value", Error ); SetFocus( Name ),
    IsBlank( Street1 ),
        Notify( "Street Address 1 requires a value", Error ); SetFocus( Street1 ),
    IsBlank( Street2 ),
        Notify( "Street Address 2 requires a value", Error ); SetFocus( Street2 ),
    IsBlank( City ),
        Notify( "City requires a value", Error ); SetFocus( City ),
    IsBlank( County ),
        Notify( "County requires a value", Error ); SetFocus( County ),
    IsBlank( StateProvince ),
        Notify( "State or Province requires a value", Error ); SetFocus( StateProvince ),
    IsBlank( PostalCode ),
        Notify( "Postal Code requires a value", Error ); SetFocus( PostalCode ),
    IsBlank( Phone ),
        Notify( "Contact Phone requires a value", Error ); SetFocus( Phone ),
    Notify( "Form is Complete", Success )
)

Da biste stvorili ovaj primjer:

  1. Stvorite novu, praznu telefonsku aplikaciju.
  2. U izborniku Umetanje odaberite Novi zaslon, a zatim odaberite Pomični.
  3. U središnjem dijelu zaslona dodajte kontrole Text input i nazovite ih Name, Street1, Street2, City, County, StateProvince, PostalCode i Phone. Dodajte kontrole Label iznad svakog radi prepoznavanja polja. Možda ćete trebati promijeniti veličinu odjeljka ako nije dovoljno dugo da prihvati sve kontrole.
  4. Dodajte kvačicu kontrola Icon pri vrhu zaslona, iznad pomičnog odjeljka.
  5. Postavite svojstvo OnSelect kontrole ikone na formulu If( IsBlank( ... navedenu iznad.

Fokusiranje tijekom prikaza nekog zaslona

Napomena

Iako se čini da ovaj primjer predstavlja kontrolu Edit form, nažalost ta kontrola još uvijek ne podržava funkciju SetFocus. Umjesto toga, ovaj primjer koristi pomični zaslon za smještaj ulaznih kontrola.

Slično kao kod izlaganja neke kontrole unosa, pri prikazivanju zaslona za unos podataka korisno je fokusirati prvu kontrolu unosa radi bržeg unosa podataka.

Animacija koja usporedno prikazuje upotrebu i neupotrebu funkcije SetFocus pri prikazivanju nekog zaslona za unos podataka.

U ovoj animaciji zaslon za unos podataka na lijevoj strani ne koristi funkciju SetFocus. Nakon prikazivanja, nijedna kontrola ulaza nema fokus, pa zahtijeva od korisnika da upotrijebi tipku Tab, dodir, miš ili neko drugo sredstvo za fokusiranje na polje Name prije nego što se vrijednost može unijeti u njega.

S desne strane imamo potpuno istu aplikaciju sa svojstvom OnVisible zaslona za unos podataka postavljenim na ovu formulu:

SetFocus( Name )

To automatski postavlja fokus na polje Name. Korisnik može početi odmah tipkati i prelaziti između polja bez prethodne radnje.

Da biste stvorili ovaj primjer:

  1. Stvorite gore navedenu aplikaciju „Fokusiranje na pitanja provjere valjanosti”.
  2. Na ovom zaslonu postavite svojstvo OnVisible na formulu SetFocus( Name ).
  3. Dodajte drugi zaslon.
  4. Dodajte kontrolu Button.
  5. Postavite svojstvo OnSelect ove kontrole na formulu Navigate( Screen1 ).
  6. Prikažite pretpregled aplikacije s ovog zaslona. Pritisnite gumb. Formula funkcije OnVisible procijenit će se i polje Name automatski će biti u fokusu.