Märkus.
Juurdepääs sellele lehele nõuab autoriseerimist. Võite proovida sisse logida või kausta vahetada.
Juurdepääs sellele lehele nõuab autoriseerimist. Võite proovida kausta vahetada.
Kehtib järgmise kohta: Lõuendirakendused
Mudelipõhised rakendused
Teisaldab sisendi fookuse kindlale juhtelemendile.
Kirjeldus
Funktsioon SetFocus annab juhtelemendile sisendfookuse. Seejärel saab selle juhtelemendi järgi kasutaja klahvivajutused, mis võimaldab neil tippida teksti sisestamise juhtelementi või kasutada nupu valimiseks sisestusklahvi. Kasutaja saab kasutada ka tabeldusklahvi, puudutust, hiirt või muud žesti, et fookust ise teisaldada. Tabeldusklahvi käitumist reguleerib atribuut TabIndex.
SetFocus Kasutage funktsiooni fookuse seadmiseks, kui (kummalgi alltoodud näitel):
- Äsja avatud või lubatud sisendi juhtelement, mis juhendab kasutajat, mis tuleb järgmisena, ja kiirema andmesisestuse jaoks.
- Vorm valideeritakse, et keskenduda ja kuvada lahenduse solvav sisend juhtelement kiireks lahenduseks.
- Kuvatakse ekraan, mis keskendub esimese sisendi juhtelemendile ekraani atribuudiga OnVisible.
Fookusega juhtelement võib atribuutide FocusedBorderColor ja FocusedBorderThickness põhjal olla visuaalselt erinev.
Piirangud
SetFocus saab kasutada ainult koos:
- Nuppude juhtimine
- Ikooni juhtelement
- Pildi juhtimine
- Siltide juhtimine
- TextInputi juhtelement
Fookuseks ei saa seada juhtelemente, mis asuvad galerii juhtelemendis, vormi juhtelemendi redigeerimisel või komponendis. SetFocus saab kasutada keritaval ekraanil oleva juhtelemendiga.
Te ei saa fookust seada konteineri juhtelementidele Konteineri juhtimises.
Fookuse saate seada ainult kõnet sisaldava SetFocus valemiga samal ekraanil olevatele juhtelementidele.
Kui proovite seada fookust juhtelemendile, mille atribuudi DisplayMode väärtuseks on seatud keelatud, ei mõjuta seda. Fookus jääb sinna, kus see varem oli.
Apple iOS-is kuvatakse pehme klaviatuur automaatselt ainult siis, kui SetFocus selle algatas otsekasutaja toiming. Näiteks, kui klõpsate nupu atribuuti OnSelect, kuvatakse pehme klaviatuur, kui klõpsate ekraani OnVisible.
Saate kasutada SetFocus ainult käitumisvalemites.
Süntaks
SetFocus( Juhtelement )
- Kontroll – nõutav. Juhtelement, mis antakse sisendi fookusele.
Näited
Fookus äsja avatud või lubatud sisendi juhtelemendile
Paljud ostukärud võimaldavad kliendil arveldusaadressina kasutada saatmisaadressi, vähendades vajadust sisestada sama teavet kaks korda. Kui soovitakse teistsugust arveldusaadressi, on arveldusaadressi tekstisisestuskastid lubatud ja andmete kiiremaks sisestamiseks on kasulik suunata klient nende äsja lubatud juhtelementide juurde.
Siin on palju valemeid, kuid see, mis fookuse teisaldab, asub märkeruudu juhtelemendi atribuudis OnUncheck.
SetFocus( BillingName )
Tabeldusklahvi saab kasutada ka fookuse kiireks liikumiseks ühelt väljalt teisele. Paremaks illustreerimiseks ei kasutatud animatsioonis tabeldusklahvi.
Selle näite loomiseks tehke järgmist.
- Looge uus rakendus.
- Lisage sildi juhtelemendid tekstiga „saatmisaadress”, „nimi:”, „aadress:”, „arveldusaadress”, „nimi:” ja „aadress:” ja paigutage need vastavalt animatsioonile.
- Lisage tekstisisestuse juhtelement ja nimetage see ümber kui ShippingName.
- Lisage tekstisisestuse juhtelement ja nimetage see ümber kui ShippingAddress.
- Saate lisada märkeruudu juhtelemendi ja nimetada selle ümber kui SyncAddresses.
- Määrake selle juhtelemendi atribuudile Tekst see valem
"Use Shipping address as Billing address". - Lisage tekstisisestuse juhtelement ja nimetage see ümber kui BillingName.
- Määrake selle juhtelemendi atribuudile Vaikimisi see valem
ShippingName. - Määrake selle juhtelemendi atribuudile DisplayMode see valem
If( SyncAddresses.Value, DisplayMode.View, DisplayMode.Edit ). See lubab või keelab automaatselt selle juhtelemendi vastavalt märkeruudu juhtelemendi olekule. - Lisage tekstisisestuse juhtelement ja nimetage see ümber kui BillingAddress.
- Määrake selle juhtelemendi atribuudile Vaikimisi see valem
ShippingAddress. - Määrake selle juhtelemendi atribuudile DisplayMode see valem
If( SyncAddresses.Value, DisplayMode.View, DisplayMode.Edit ). See lubab või keelab automaatselt selle juhtelemendi vastavalt märkeruudu juhtelemendi olekule. - Määrake selle märkeruudu atribuudile Vaikimisi see valem
true. See on vaikimisi arveldusaadress, et kasutada sama väärtust, mis saatmisaadress. - Määrake selle märkeruudu atribuudile OnCheck see valem
Reset( BillingName ); Reset( BillingAddress ). Kui kasutaja soovib sünkroonida saatmis- ja arveldusaadresse, siis on võimalik, et see tühjendab iga kasutaja sisestuse arveldusaadresside väljadel, võimaldades iga vaikimisi atribuuti, et tõmmata väärtused vastavalt saatmisaadressi väljalt. - Määrake selle märkeruudu atribuudile OnUncheck see valem
SetFocus( BillingName ). Kui kasutaja soovib valida mõne muu arveldusaadressi, siis teisaldab see fookuse arveldusaadressi esimesele juhtelemendile. Juhtelemendid on juba lubatud nende atribuutide DisplayMode tõttu.
Fookus valideerimise probleemidele
Märkus.
Kuigi see näide näib olevat vormi redigeerimise juhtelement, ei toeta see juhtelement kahjuks SetFocus veel seda juhtelementi. Selle asemel kasutab see näide keritavat ekraani, mis hostib sisendi juhtelemente.
Vormi valideerimisel võib osutuda kasulikuks mitte ainult sõnumi kuvamine juhul, kui probleem on olemas vaid siis, kui soovite, et kasutaja võtaks vastu ka solvavat välja. See võib olla eriti kasulik juhul, kui kõnealune väli keritakse ekraanilt välja ja seda pole näha.
Selles animatsioonis vajutatakse valideerimise nuppu korduvalt, kuni kõik väljad on korralikult täidetud. Pange tähele, et hiirekursor ei liigu ekraani ülaosast alla. SetFocus Selle asemel on funktsioon viinud sisendfookuse juhtelemendile, mis nõuab selle valemiga tähelepanu:
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 )
)
Selle näite loomiseks tehke järgmist.
- Looge uus tühi telefonirakendus.
- Valige menüüst SisestaUus ekraan ja seejärel valige Keritav.
- Lisage ekraani keskele jaotisse tekstisisendi juhtelemendid ja nimetage need kui nimi, Street1, Street2, linn, maakond, StateProvince, sihtnumberja telefon. Lisage kõigi väljade tuvastamiseks sildi juhtelemendid. Võimalik, et peate jaotise suurust muutma, kui see pole piisavalt pikk, et mahutada kõik juhtelemendid.
- Lisage märkeruudu ikooni juhtelement ekraani ülaosas, mis on ülalpool keritavat jaotist.
- Määrake ikooni juhtelemendi atribuut OnSelect valemile
If( IsBlank( ..., mis on ülalpool.
Fookus ekraani kuvamisel
Märkus.
Kuigi see näide näib olevat vormi redigeerimise juhtelement, ei toeta see juhtelement kahjuks SetFocus veel seda juhtelementi. Selle asemel kasutab see näide keritavat ekraani, mis hostib sisendi juhtelemente.
Sarnaselt sisendi juhtelemendi kuvamisega, on andmete sisestamise kuvamisel kasulik keskenduda esimesele sisendi juhtelemendile kiirema andmesisestuse jaoks.
Selles animatsioonis ei kasuta SetFocusvasakul asuvat andmesisestuskuva . Kui te ei soovi sisendi juhtelementi kuvada, on vaja, et kasutaja saaks vahekaardi, puudutuse, hiire või mõne muu vahendi abil keskenduda nime väljale, enne kui väärtuse saab tippida.
Paremal on meil täpselt sama rakendus, mis on selle valemi atribuudi OnVisible väärtuseks seatud.
SetFocus( Name )
See määrab fookuse automaatselt nime väljale. Kasutaja saab alustada tippimist ja liikuda tabulaatoriga väljade vahel kohe, kui eelnevaid toiminguid pole vaja.
Selle näite loomiseks tehke järgmist.
- Looge eespool rakenduse „Fookus valideerimise probleemidele”.
- Määrake sel ekraanil atribuudile OnVisible see valem
SetFocus( Name ). - Lisage teine ekraan.
- Lisage nupu juhtelement.
- Määrake selle juhtelemendi atribuut OnSelect valemile
Navigate( Screen1 ). - Vaadake rakenduse eelvaadet sellelt kuvalt. Vajutage nuppu. Valemit OnVisible hinnatakse ja nime väli on automaatselt fookuses.