1 SPEAKER: בואו לכתוב תכנית עם ממשק משתמש גרפי, כמו גם שדה טקסט שמאפשר למשתמש הקלד בכמה מחרוזת ולחץ על Enter, ב שנקודת המחרוזת שהיא סיפק לתכנית שלי. בדומה GetString בספריית CS50 עובד, אבל הפעם עם ממשק משתמש גרפי. בואו נתחיל. כבר כתבתי קצת קוד שלד, אז בואו עכשיו למלא ריק. GTextField, וכינה אותו תחום. הקצאה את ערך ההחזרה של newGTextField. וציון שאני רוצה לראות 10 תווים מהמשתמש על המסך בכל פעם. בואו שיחת setActionCommand הבאה, עובר בתחום, עובר בתניחו, במרכאות, "קלט". במילים אחרות, בואו לקשר עם שדה טקסט זה "קלט". ייחודי מחרוזת רק במקרה שלי יש ממשק משתמש טקסט מרובה שדות, באופן ייחודי תהיה במחרוזת זו לזהות את זה. בוא שיחת addToRegion הבאה, עובר ב חלון, עובר בשדה, עובר במרכאות, "דרום," ייחודי מזהה מוגדר בסטנפורד ספרייה ניידת שמציינת הדרום או בתחתית אזור של ממשק המשתמש שלי. בואו הבא לגרום ללולאה אינסופית. ובתוך הלולאה הזאת, בוא להקשיב לשני אירועים. אחת, המשתמש סוגר את החלון. או שתיים, המשתמש הקליד משהו שלשדה הטקסט. בואו נכריז gActionEvent. קורא לזה אירוע. הקצאה את התמורה ערך של waitForEvent. ציון שהסוג של מאורע שהיינו אוהב להקשיב להוא ACTION_EVENT, בי ACTION_EVENT הוא קבוע הכריז בנייד סטנפורד ספרייה שמציינת סוג זה של אירוע. בואו לבדוק הבא אם, getEventType, עובר במקרה, שווה שווה WINDOW_CLOSED, קבוע אחר שהוכרז בנייד סטנפורד ספרייה המצביעה על כך החלון נסגר. אז בואו פשוט נפרוץ של הלולאה האינסופית הזה. אחרת, בואו עכשיו לבדוק אם משתמש הקליד משהו של שדה טקסט. אם, מחרוזת להשוות, getActionCommand, עובר באירוע, פסיק מרכאות "קלט" שווה שווה 0. במילים אחרות, אם המזהה הייחודי שדה הטקסט שלתוכו המשתמש הקליד משהו שווה כדי שהמזהה ייחודית שאני צוין קודם לכן, בואו בצע את הפעולות הבאות. סוף ציטוט ציטוט printf "% s שהוזן." ובואו תוסף עבור ש % S ערך ההחזרה של עובר gettext בשטח, שבו gettext הוא עוד פונקציה, שהוגדרה בסטנפורד ספרייה ניידת, שמקבל את הטקסט משדה. בואו עכשיו להציל, לקמפל, ולהפעיל את התכנית. הפיכת טקסט. . / טקסט. יש ממשק המשתמש שלי, ויש ששדה הטקסט בתחתית. בואו נקליד משהו כמו h-e-L-L-o, Enter. ושם, בחלק התחתון שלי חלון מסוף, אכן אנו רואים כי "שלום" היה שהוזן.