Kopīgot, izmantojot


SetFocus funkcija

Attiecas uz: Audekla programmas Modeļa vadītas programmas

Ievades fokusu pārvieto uz noteiktu vadīklu.

Apraksts

Funkcija SetFocus nodrošina ievades fokusa kontroli. Pēc tam šī vadīkla saņem lietotāja taustiņsitienus, ļaujot viņiem ievadīt ievades vadīklā tekstu vai izmantot Enter taustiņu, lai atlasītu pogu. Lietotāji var arī izmanto Tab taustiņu, skārienvadību, peli vai citu žestu, lai paši pārvietotu ievades fokusu. Tabulēšanas taustiņu darbību regulē rekvizīts TabIndex.

Izmantojiet funkciju, SetFocus lai iestatītu fokusu, kad (katrs ar piemēru zemāk):

  • ir tikko eksponēta vai iespējota ievades vadīkla, lai vadītu lietotāju tajā, kas sekos tālāk, un nodrošinātu ātrāku datu ievadi.
  • tiek validēta veidlapa, lai fokusētu un rādītu aizvainojošo ievades vadīklu ātram atrisinājumam.
  • tiek rādīts ekrāns, lai fokusētu pirmo ievades vadīklu ar Ekrāna rekvizītu OnVisible.

Vadīkla ar fokusu var vizuāli atšķirties, pamatojoties uz FocusedBorderControl un FocusedBorderThickness rekvizītiem.

Ierobežojumi

SetFocus Var lietot tikai ar:

Fokusu nevar iestatīt vadīklām, kas atrodas galerijas vadīklā, veidlapas vadīklā vai komponentā. SetFocus Var izmantot ar vadīklu ritināmā ekrānā.

Fokusu nevar iestatīt vadīklām, kas atrodas vadīklā Konteineris.

Fokusu var iestatīt tikai uz vadīklām, kas atrodas tajā pašā ekrānā, kurā ir formula, kurā ir zvans SetFocus .

Mēģinājumiem iestatīt fokusu uz vadīklu, kuras rekvizīts DisplayMode ir iestatīts uz Disabled, nebūs nekādas ietekmes. Fokuss paliks tur, kur tas bija iepriekš.

Apple iOS ierīcē mīkstā tastatūra tiks parādīta automātiski tikai tad, ja SetFocus to uzsāka tieša lietotāja darbība. Piemēram, izsaucot no pogas rekvizīta OnSelect, tiks rādīta elektroniskā tastatūra, bet izsaucot no ekrāna OnVisible — nē.

Var izmantot SetFocus tikai uzvedības formulās.

Sintakse

SetFocus( Kontrole )

  • Kontrole - Nepieciešama. Vadīkla, lai nodrošinātu ievadei fokusu.

Piemēri

Fokuss uz tikko eksponētu vai iespējotu ievades vadīklu

Daudzi iepirkumu grozi ļauj klientam izmantot piegādes adresi kā norēķinu adresi, mazinot vajadzību divreiz ievadīt vienu un to pašu informāciju. Ja vēlaties izmantot citu norēķinu adresi, tiek iespējoti norēķinu adreses teksta ievades lodziņi, un ir noderīgi novirzīt klientu uz šīm nesen iespējotajām vadīklām ātrākai datu ievadei.

Animācija, kurā izvēlas lietot pielāgotu norēķinu adresi, fokuss ir pārvietots uz norēķinu vārda ievades vadīklu kā rezultātu, izslēdzot automātisko sinhronizāciju ar piegādes adresi.

Ir iesaistītas daudzas formulas, taču tā, kura pārvieto fokusu, atrodas vadīklas Izvēles rūtiņa rekvizītā OnUncheck:

SetFocus( BillingName )

Taustiņu Tab var arī izmantot, lai ātri pārvietotu fokusu no viena lauka uz citu. Labākai ilustrācijai animācijā netika izmantots Tab taustiņš.

Lai izveidotu šo piemēru:

  1. Izveidojiet jaunu programmu.
  2. Pievienojiet Etiķetes vadīklas ar tekstu "Piegādes adrese", "Vārds un uzvārds:", "Adrese:", "Norēķinu adrese", "Vārds un uzvārds:", and "Adrese:" un novietojiet tos, kā parādīts animācijā.
  3. Pievienojiet Teksta ievades vadīklu un pārdēvējiet to par ShippingName.
  4. Pievienojiet Teksta ievades vadīklu un pārdēvējiet to par ShippingAddress.
  5. PIevienojiet Izvēles rūtiņas vadīklu un pārdēvējiet to par SyncAddresses.
  6. Iestatiet šīs vadīklas Teksta rekvizītu uz formulu "Use Shipping address as Billing address".
  7. Pievienojiet Teksta ievades vadīklu un pārdēvējiet to par BillingName.
  8. Iestatiet šīs vadīklas Noklusējuma rekvizītu uz formulu ShippingName.
  9. Iestatiet šīs vadīklas DisplayMode rekvizītu uz formulu If( SyncAddresses.Value, DisplayMode.View, DisplayMode.Edit ). Tādējādi šī vadīkla tiks automātiski iespējota vai atspējota atkarībā no izvēles rūtiņas vadīklas statusa.
  10. Pievienojiet Teksta ievades vadīklu un pārdēvējiet to par BillingAddress.
  11. Iestatiet šīs vadīklas Noklusējuma rekvizītu uz formulu ShippingAddress.
  12. Iestatiet šīs vadīklas DisplayMode rekvizītu uz formulu If( SyncAddresses.Value, DisplayMode.View, DisplayMode.Edit ). Tādējādi šī vadīkla tiks automātiski iespējota vai atspējota atkarībā no izvēles rūtiņas vadīklas statusa.
  13. Iestatiet izvēles rūtiņas Noklusējuma rekvizītu uz formulu true. Tādējādi tiks iespējots, ka norēķinu adrese izmantos tādu pašu vērtību kā piegādes adrese.
  14. Iestatiet izvēles rūtiņas OnCheck rekvizītu uz formulu Reset( BillingName ); Reset( BillingAddress ). Ja lietotājs izvēlas sinhronizēt piegādes un norēķinu adreses, tiks noņemta jebkāda lietotāja ievade norēķinu adreses laukos, ļaujot katram Noklusējuma rekvizītam izvilkt vērtības no atbilstošajiem piegādes adrešu laukiem.
  15. Iestatiet izvēles rūtiņas OnUnCheck rekvizītu uz formulu SetFocus( BillingName ). Ja lietotājs izvēlas izmantot citu norēķinu adresi, fokuss tiks pārvietots uz pirmo norēķinu adreses vadīklu. Vadīklas jau būs iestatītas savu DisplayMode rekvizītu dēļ.

Fokuss uz validācijas problēmām

Note

Lai gan šis piemērs šķiet veidlapas rediģēšanas vadīkla, diemžēl SetFocus šī vadīkla to vēl neatbalsta. Tā vietā šajā piemērā tiek izmantots ritināms ekrāns, lai viesotu ievades vadīklas.

Validējot veidlapu, var būt noderīgi ne tikai rādīt ziņojumu, ja radusies problēma, bet arī aizvest lietotāju uz problemātisko lauku. Tas var būt īpaši noderīgi, ja konkrētais lauks tiek aizritināts ārpus ekrāna un nav redzams.

Animācija, kurā tiek validēta datu ievades veidlapa un tiek rādīts ne tikai ziņojums, bet arī iestatīts ievades fokuss uz problemātisko ievades vadīklu pat, ja tā tiek aizritināta ārpus ekrāna.

Šajā animācijā validācijas poga tiek atkārtoti spiesta, līdz visi lauki ir atbilstoši aizpildīti. Ņemiet vērā, ka peles rādītājs nevirzās uz leju no ekrāna augšpuses. Tā vietā SetFocus funkcija ir pārvietojusi ievades fokusu uz vadīklu, kurai jāpievērš uzmanība, izmantojot šo formulu:

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 )
)

Lai izveidotu šo piemēru:

  1. Izveidojiet jaunu, tukšu tālruņa programmu.
  2. Izvēlnē Ievadīt atlasiet Jauns ekrāns un pēc tam atlasiet Ritināms.
  3. Ekrāna centra sadaļā pievienojiet Teksta ievades vadīklas un nodēvējiet tās par Name, Street1, Street2, City, County, StateProvince, PostalCode, and Phone. Virs katra pievienojiet Etiķetes vadīklas, lai identificētu laukus. Iespējams, vajadzēs mainīt šīs sadaļas izmēru, ja tā nav pietiekami gara, lai tajā ietilptu visas vadīklas.
  4. Pievienojiet Ikonas vadīklas atzīmi ekrāna augšpusē virs ritināmās sadaļas.
  5. Iestatiet ikonas vadīklas rekvizītu OnSelect uz formulu If( IsBlank( ..., kas norādīta iepriekš.

Fokuss, rādot ekrānu

Note

Lai gan šis piemērs šķiet veidlapas rediģēšanas vadīkla, diemžēl SetFocus šī vadīkla to vēl neatbalsta. Tā vietā šajā piemērā tiek izmantots ritināms ekrāns, lai viesotu ievades vadīklas.

Līdzīgi kā eksponējot ievades vadīklu, datu ekrāna rādīšanas laikā ir noderīgi fokusēt pirmo ievades vadīklu, lai panāktu datu ātrāku ievadi.

Animācija, kurā redzams salīdzinājums starp datu ievades SetFocus ekrānu.

Šajā animācijā kreisajā pusē esošais datu ievades ekrāns neizmanto SetFocus. Rādīšanas laikā nevienai ievades vadīklai nav fokusa, kas nozīmē, ka lietotājam ir jāpieskaras, jānoklikšķina vai jāizmanto cits veids, lai fokusētu lauku Vārds, pirms tajā var ievadīt vērtību.

Labajā pusē ir tieši tāda pati programmas, kuras datu ievades ekrāna rekvizīts OnVisible ir iestatīts uz šo formulu:

SetFocus( Name )

Tas automātiski iestata fokusu uz lauku Vārds. Lietotājs var sākt rakstīt un tabulēt starp laukiem nekavējoties un neveicot iepriekšējas darbības.

Lai izveidotu šo piemēru:

  1. Izveidojiet augstāk minēto programmu "Fokuss uz validācijas problēmām".
  2. Šajā ekrānā iestatiet rekvizītu OnVisible uz formulu SetFocus( Name ).
  3. Pievienojiet otro ekrānu.
  4. Pievienojiet Pogas vadīklu.
  5. IEstatiet šīs vadīklas rekvizītu OnSelect uz formulu Navigate( Screen1 ).
  6. Priekšskatiet programmu no šī ekrāna. Nospiediet pogu. Formula OnVisible tiks novērtēta un lauks Vārds tika automātiski fokusēts.