שתף באמצעות


הפונקציה SetFocus

חל על: יישומי בד ציור יישומים מונחי דגמים

מעבירה את מוקד הקלט אל פקד ספציפי.

Description

הפונקציה SetFocus מעניקה שליטה למיקוד הקלט. הקשות המשתמש מתקבלות לאחר מכן על-ידי פקד זה, וזה מאפשר להן להקליד בפקד קלט טקסט או להשתמש במקש Enter כדי לבחור לחצן. המשתמש יכול גם להשתמש במקש Tab, במגע, בעכבר או במחווה אחרת כדי להעביר את מיקוד הקלט בעצמו. אופן הפעולה של המקש Tab מנוהל על-ידי המאפיין TabIndex.

השתמש בפונקציה SetFocus כדי להגדיר את המיקוד כאשר (כל מקרה עם דוגמה להלן):

  • פקד קלט חדש נחשף או מופעל, כדי להדריך את המשתמש לגבי הפעולות הבאות ועבור הזנת נתונים מהירה יותר.
  • טופס מאומת, כדי למקד ולהציג את פקד הקלט המפר את הכלל עבור פתרון מהיר.
  • מוצג מסך כדי להתמקד בפקד הקלט הראשון עם המאפיין OnVisible של המסך.

הפקד עם המיקוד עשוי להיות שונה באופן חזותי בהתבסס על המאפיינים FocusedBorderColor ו- FocusedBorderThickness.

מגבלות

ניתן להשתמש בפונקציה SetFocus רק עם:

אין באפשרותך להגדיר את המיקוד לפקדים שנמצאים בתוך פקד Gallery‎, פקד Edit form או רכיב. ניתן להשתמש ב- SetFocus עם פקד במסך גלילה.

אינך יכול להגדיר את המיקוד לפקדים הנמצאים בתוך פקד Container‎.

באפשרותך להגדיר את המיקוד רק לפקדים באותו מסך כשל הנוסחה המכילה את קריאת SetFocus.

הניסיון להגדיר את המיקוד לפקד שמאפיין DisplayMode שלו מוגדר לערך מושבת אינו בעל השפעה. המיקוד יישאר במקום שהיה בעבר.

ב- Apple iOS, המקלדת הרכה תוצג אוטומטית רק אם SetFocus הופעל על-ידי פעולת משתמש ישירה. לדוגמה, הפעלה ממאפיין OnSelect של לחצן תציג את המקלדת הרכה בעוד שההפעלה מ- OnVisible של המסך לא תעשה זאת.

באפשרותך להשתמש בפונקציה SetFocus רק בנוסחאות של אופן פעולה.

תחביר

SetFocus( Control )

  • Control – נדרש. השליטה שיש לתת למיקוד הקלט.

דוגמאות

מיקוד בפקד קלט חדש שנחשף או הופעל

עגלות קניות רבות מאפשרות ללקוח להשתמש בכתובת המשלוח ככתובת החיוב, ומקלות על הצורך בהזנת אותו מידע פעמיים. אם יש צורך בכתובת חיוב שונה, תיבות קלט הטקסט של כתובת החיוב מופעלות, וזה עוזר להדריך את הלקוח אל פקדים חדשים מופעלים אלה עבור הזנת נתונים מהירה יותר.

הנפשה של בחירה להשתמש בכתובת חיוב מותאמת אישית, כאשר המיקוד מועבר לפקד הזנת שם החיוב כתוצאה מכך, תוך כיבוי הסינכרון האוטומטי עם כתובת החיוב.

קיימות נוסחאות רבות שלוקחות כאן חלק, אבל זו שמעבירה את המיקוד נמצאת במאפיין OnUncheck של הפקד Check box:

SetFocus( BillingName )

ניתן להשתמש במקש Tab גם כדי להעביר את המיקוד במהירות משדה אחד לשני. כדי להמחיש טוב יותר, המקש Tab לא שימש בהנפשה.

כדי ליצור דוגמה זו:

  1. צור יישום חדש.
  2. הוסף פקדי Label‎ עם הטקסט "כתובת משלוח", "שם:", "כתובת:", "כתובת חיוב," "שם:" ו"כתובת:" ומקם אותם כפי שמוצג בהנפשה.
  3. הוסף פקד Text Input ושנה את שמו ל- ShippingName.
  4. הוסף פקד Text Input ושנה את שמו ל- ShippingAddress.
  5. הוסף פקד Check box ושנה את שמו ל- SyncAddresses.
  6. הגדר את המאפיין Text‎ של פקד זה לנוסחה "Use Shipping address as Billing address".
  7. הוסף פקד Text Input ושנה את שמו ל- BillingName.
  8. הגדר את המאפיין Default‎ של פקד זה לנוסחה ShippingName.
  9. הגדר את המאפיין DisplayMode‎ של פקד זה לנוסחה If( SyncAddresses.Value, DisplayMode.View, DisplayMode.Edit ). פעולה זו תהפוך אוטומטית את הפקד לזמין או ללא זמין בהתבסס על המצב של פקד תיבת הסימון.
  10. הוסף פקד Text Input ושנה את שמו ל- BillingAddress.
  11. הגדר את המאפיין Default‎ של פקד זה לנוסחה ShippingAddress.
  12. הגדר את המאפיין DisplayMode‎ של פקד זה לנוסחה If( SyncAddresses.Value, DisplayMode.View, DisplayMode.Edit ). פעולה זו תהפוך אוטומטית את הפקד לזמין או ללא זמין בהתבסס על המצב של פקד תיבת הסימון.
  13. הגדר את המאפיין Default‎ של תיבת הסימון לנוסחה true. ברירת המחדל תהיה שכתובת החיוב תשתמש באותו ערך כשל כתובת המשלוח.
  14. הגדר את המאפיין OnCheck של תיבת הסימון לנוסחה Reset( BillingName ); Reset( BillingAddress ). אם המשתמש יבחר לסנכרן כתובות משלוח וחיוב, פעולה זו תנקה את כל קלט המשתמש בשדות כתובת החיוב המאפשרים את מאפייני Default בכל אחד מהם כדי למשוך את הערכים משדות כתובת המשלוח התואמים.
  15. הגדר את המאפיין OnUnCheck של תיבת הסימון לנוסחה SetFocus( BillingName ). אם המשתמש יבחר בכתובת חיוב אחרת, הדבר יעביר את המיקוד לפקד הראשון בכתובת החיוב. הפקדים כבר הופעלו בשל מאפייני DisplayMode‎ שלהם.

התמקדות בבעיות אימות

הערה

למרות שנראה שדוגמה זו היא פקד Edit form, למרבה הצער 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. במקטע המרכזי של המסך, הוסף פקדי Text Input וקרא להם שם, רחוב 1, רחוב 2, עיר, מדינה, מחוז, מיקוד וטלפון. הוסף פקדי Label‎ מעל כל אחד כדי לזהות את השדות. ייתכן שיהיה עליך לשנות את גודל המקטע אם אינו ארוך דיו כדי להתאים לכל הפקדים.
  4. הוסף סימן ביקורת פקד Icon‎ בראש המסך, מעל המקטע הנגלל.
  5. הגדר את המאפיין OnSelect של פקד הסמל לנוסחה If( IsBlank( ... המופיעה לעיל.

מיקוד בעת הצגת מסך

הערה

למרות שנראה שדוגמה זו היא פקד Edit form, למרבה הצער SetFocus עדיין אינה נתמכת על-ידי פקד זה. במקום זאת, דוגמה זו משתמשת במסך הניתן לגלילה כדי לארח את פקדי הקלט.

בדומה לחשיפת פקד קלט, בעת הצגת מסך הזנת נתונים, זה עוזר להתמקד בפקד ההזנה הראשון עבור הזנת נתונים מהירה יותר.

הנפשה המציגה השוואה זה לצד זה של שימוש ב- SetFocus לעומת אי שימוש בה בעת הצגת מסך הזנת נתונים.

בהנפשה זו, מסך הזנת הנתונים משמאל אינו משתמש ב- SetFocus. בעת התצוגה, המיקוד אינו באף פקד קלט, מה שדורש מהמשתמש ללחוץ על tab, לגעת, להשתמש בעכבר או להשתמש באמצעי אחר כדי להתמקד בשדה שם לפני שיוכל להקליד בו ערך.

מימין יש לנו בדיוק את אותו יישום עם המאפיין OnVisible של מסך הזנת הנתונים המוגדר לנוסחה זו:

SetFocus( Name )

הדבר מגדיר את המיקוד לשדה שם באופן אוטומטי. המשתמש יכול להתחיל להקליד ולעבור בין השדות באמצעות Tab באופן מיידי מבלי שנדרשת פעולה קודמת.

כדי ליצור דוגמה זו:

  1. צור את היישום 'התמקדות בבעיות אימות" לעיל.
  2. במסך זה, הגדר את המאפיין OnVisible לנוסחה SetFocus( Name ).
  3. הוסף מסך שני.
  4. הוסף פקד Button‎.
  5. הגדר את המאפיין OnSelect של פקד זה לנוסחה Navigate( Screen1 ).
  6. הצג את היישום בתצוגה מקדימה ממסך זה. לחץ על הלחצן. הנוסחה OnVisible תוערך והשדה שם יעבור למיקוד באופן אוטומטי.