Делите путем


SetFocus Функцију

Односи се на: Цанвас апликације - Апликације засноване на моделу

Премешта улазни фокус на одређену контролу.

Опис

Функција SetFocus даје контролу улазни фокус. Тада контрола прима корисничке притиске тастера и омогућава му да упише контролу уноса текста или да користи тастер Enter за избор дугмета. Корисник такође може да користи тастер Tab, додир, миш или други гест да бисте сам померио улазни фокус. Понашање тастера Таб регулише особина ТабИндеx.

Користите SetFocus функцију да подесите фокус када (сваки са примером испод):

  • нова изложена или омогућена контрола уноса, која ће водити корисника ка ономе шта следи и за бржи унос података.
  • образац је потврђен, за фокусирање и приказивање увредљиве контроле уноса за брзо решавање.
  • приказује се екран за фокусирање прве контроле уноса са својством OnVisible на Екрану.

Контрола са фокусом се може визуелно разликовати на основу својства FocusedBorderColor и FocusedBorderThickness.

Ограничења

SetFocus Може се користити само са:

Не можете подесити фокус на контроле које су унутар контроле Галерија , Уређивање форме контроле или Компоненте. SetFocus може се користити са контролом на екрану који се може померати.

Не можете поставити фокус на контроле које су унутар контроле Контејнер.

Можете подесити фокус само на контроле на истом екрану као и формула која садржи SetFocus позив.

Покушај да се фокус постави на контролу која има своје својство Режим приказа постављено на Онемогућено нема ефекта. Фокус ће остати тамо где је раније био.

На Аппле иОС-у, мека тастатура ће се аутоматски приказати само ако SetFocus је покренута директном акцијом корисника. На пример, позивање са својства дугмета OnSelect ће приказати софтверску тастатуру док позивање са екрана OnVisible неће.

Можете користити SetFocus само у формулама понашања .

Синтакса

SetFocus( Контрола )

  • Контрола – Обавезно. Контрола за давање улазног фокуса.

Примери

Фокусирајте се на нову изложену или омогућену улазну контролу

Многе korpe za kupovinu омогућавају klijentu да адресу за доставу користи као адресу за наплату, ублажавајући потребу да се двапут уносе исти подаци. Ако се жели друга адреса за наплату, текстуална поља за унос адресе за наплату су омогућена, и корисно је водити купца на ове ново омогућене контроле за бржи унос података.

Анимација избора коришћења прилагођене адресе за наплату, са фокусом премештеним на контролу уноса имена наплате као резултат враћа искључивања аутоматске синхронизације са адресама за испоруку.

Овде играју многе формуле, али она која помера фокус је својство OnUncheck контроле Поље за потврду:

SetFocus( BillingName )

Тастер Tab се такође може користити за брзо премештање фокуса из једног поља у друго. За бољу илустрацију, тастер Tab није коришћен у анимацији.

Да бисте креирали овај пример:

  1. Креирајте нову апликацију.
  2. Додајте контроле Ознака са текстом "Адреса за доставу", "Име:", "Адреса:", "Адреса за наплату", "Име:" и "Адреса:" и поставите их као што је приказано у анимацији.
  3. Додајте контролу Унос текста и преименујте је у ShippingName.
  4. Додајте контролу Унос текста и преименујте је у ShippingAddress.
  5. Додајте контролу Поље за потврду и преименујте је у SyncAddresses.
  6. Подесите својство Текст ове контроле на формулу "Use Shipping address as Billing address".
  7. Додајте контролу Унос текста и преименујте је у BillingName.
  8. Подесите својство Подразумевано за ову контролу на формулу ShippingName.
  9. Подесите својство DisplayMode за ову контролу на формулу If( SyncAddresses.Value, DisplayMode.View, DisplayMode.Edit ). Ово ће аутоматски омогућити или онемогућити ову контролу на основу стања контроле у пољу за потврду.
  10. Додајте контролу Унос текста и преименујте је у BillingAddress.
  11. Подесите својство Подразумевано за ову контролу на формулу ShippingAddress.
  12. Подесите својство DisplayMode за ову контролу на формулу If( SyncAddresses.Value, DisplayMode.View, DisplayMode.Edit ). Ово ће аутоматски омогућити или онемогућити ову контролу на основу стања контроле у пољу за потврду.
  13. Подесите својство Подразумевано поља за потврду на формулу true. Ово ће подразумевано обрачунати адресу за коришћење исте вредности као и адреса за доставу.
  14. Подесите својство OnCheck поља за потврду на формулу Reset( BillingName ); Reset( BillingAddress ). Ако корисник одлучи да синхронизује адресе за доставу и наплату, то ће обрисати сваки кориснички унос у пољима Адреса за наплату омогућавајући својства Подразумевано на сваком својству да би се извукле вредности из одговарајућих поља са адресом за доставу.
  15. Подесите својство OnUncheck поља за потврду на формулу SetFocus( BillingName ). Ако корисник одабере другу адресу за обрачун, фокус ће се померити на прву контролу у адреси за наплату. Контроле ће већ бити омогућене због њихових својстава DisplayMode.

Фокусирање на питања валидације

Белешка

Иако се чини да је овај пример контрола Едит форм, нажалост SetFocus још увек није подржана од стране те контроле. Уместо тога, овај пример користи екран за померање за хостовање улазних контрола.

При потврди обрасца може вам бити корисно не само приказивање поруке ако постоји проблем, већ и одвођење корисника у поље које је увредљиво. То може бити посебно корисно ако се дотично поље помера са екрана и није видљиво.

Анимација о потврђивању обрасца за унос података и приказивању не само поруке, већ и постављање улазног фокуса на контролу уноса, чак и ако се помера са екрана.

У овој анимацији дугме за потврду се више пута притиска док се сва поља правилно не попуне. Имајте на уму да се показивач миша не помера надоле са врха екрана. Уместо тога, SetFocus функција је преместила улазни фокус на контролу која захтева пажњу са овом формулом:

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

Да бисте креирали овај пример:

  1. Креирајте нову, празну апликацију за телефон.
  2. У менију Уметање изаберите Нови екран, а затим изаберите Може да се повлачи.
  3. У средишњем делу екрана додајте контроле Унос текста именујте их као Име, Улица1, Улица2, Град, Округ, Држава/покрајина, Поштански број и Телефон. Додајте контроле Ознака изнад сваке од њих за препознавање поља. Можда ћете морати да промените величину одељка ако није довољно дуг да стане на све контроле.
  4. Додајте знак за потврду контроле Икона у врху екрана, изнад одељка који може да се помера.
  5. Подесите својство OnSelect контроле иконе према горенаведеној формули If( IsBlank( ...

Фокус код приказа екрана

Белешка

Иако се чини да је овај пример контрола Едит форм, нажалост SetFocus још увек није подржана од стране те контроле. Уместо тога, овај пример користи екран за померање за хостовање улазних контрола.

Слично као код излагања улазне контроле, приликом приказивања екрана за унос података корисно је фокусирати прву контролу улаза за бржи унос података.

Анимација која приказује упоређивање коришћења SetFocus у односу на некоришћење приликом приказивања екрана за унос података.

У овој анимацији, екран за унос података са леве стране не користи SetFocus. Када се прикаже да ниједна контрола носа нема фокус, и од корисника се тражи да фокусира поље Име помоћу табулатора, додира, миша или другог начина, пре него што се у њега може унети вредност.

На десној страни имамо потпуно исту апликацију са својством OnVisible екрана за унос података постављеним на ову формулу:

SetFocus( Name )

Ово поставља фокус на поље Име аутоматски. Корисник може одмах почети да уноси и да се помера између поља помоћу табулатора, без претходне радње.

Да бисте креирали овај пример:

  1. Направите горњу апликацију „Фокусирање на питања валидације“.
  2. На овом екрану, подесите својство OnVisible за ову контролу на формулу SetFocus( Name ).
  3. Додавање другог екрана.
  4. Додајте контролу Дугме
  5. Подесите својство OnSelect ове контроле на формулу Navigate( Screen1 )
  6. Прегледајте апликацију са овог екрана. Притисните дугме. Формула OnVisible ће бити процењена и поље Име ће аутоматски бити у фокусу.