אפשר לערוך ולעצב טקסט באמצעות טווחי טקסט, שמיוצגים באמצעות הסוג TextRange
. TextRange
מייצג קטע טקסט בתוך צורה או בתוך תא בטבלה. קריאה ל-getText()
בצורה או בתא בטבלה מחזירה טווח של טקסט שמכסה את כל הטקסט.
אם משתמשים בשיטות שעורכות את האופן שבו טקסט נכנס לצורה, כל הגדרות ההתאמה האוטומטית שהוחלו על הצורה מושבתות.
שימוש בטווחי טקסט
לטווח טקסט יש שני אינדקסים שמפרידים את מקטע הטקסט שמכוסה בטווח טקסט: אינדקס התחלה ואינדקס סיום. אפשר לקבוע את האינדקסים האלה באמצעות הפונקציות getStartIndex()
ו-getEndIndex()
.
כדי לקרוא את התוכן של טווח טקסט, צריך להשתמש בפונקציות asString()
או asRenderedString()
.
כדי לאחזר תת-טווח מתוך טווח טקסט, צריך להשתמש בפונקציה getRange()
.
הסקריפט הבא יוצר תיבת טקסט בשקף הראשון ומגדיר את תוכן הטקסט שלו ל-"Hello world!". לאחר מכן, היא מאחזרת תת-טווח שמקיף רק את ה-"Hello".
טווח הטקסט שמוחזר מצורה או מתא בטבלה תמיד יכסה את כל הטקסט, גם אם מוסיפים ומוחקים טקסט. כך שהדוגמה שלמעלה מפיקה את הצהרות היומן הבאות:
Start: 0; End: 13; Content: Hello world! Start: 0; End: 5; Content: Hello
הוספה ומחיקה של טקסט
ניתן גם להוסיף ולמחוק צורות טקסט ותאי טבלה באמצעות טווחי טקסט.
- אפשר להשתמש ב-
insertText()
וב-appendText()
כדי להוסיף טקסט. - הפונקציה
setText()
מחליפה טקסט של טווח טקסט בטקסט שצוין. - הפונקציה
clear()
מוחקת טקסט מתוך טווח טקסט.
הסקריפט הבא מדגים את השימוש בפונקציות האלה:
הסקריפט יוצר תיבת טקסט בשקף הראשון ומגדיר את תוכן הטקסט שלו ל-"Hello world!". לאחר מכן היא מוחקת את התווים 6 עד 11 ("עולם"), ומוסיפה במקום זאת את הטקסט "גלקסיה" באינדקס 6. הדוגמה שלמעלה תפיק את הצהרת היומן הבאה:
Start: 0; End: 14; Content: Hello galaxy!
חיפוש והחלפה
השתמשו בפונקציה replaceAllText()
במצגת או בדף כדי לבצע חיפוש גלובלי והחלפה בכל המצגת או בדף ספציפי.
הפונקציה find()
ב-TextRange מחזירה את המופעים של מחרוזת כלשהי בתוך הטווח. אפשר להשתמש בו יחד עם setText()
לביצוע חיפוש והחלפה בתוך צורה או תא בטבלה.
פסקאות, פריטים ברשימה והפעלות
TextRange
מספק פונקציות להחזרת אוספים שימושיים של ישויות טקסט.
חלק מהפונקציות האלה כוללות:
getParagraphs(),
שמספקת את כל הפסקאות שחופפות לטווח הטקסט. פסקה היא רצף של טקסט שמסתיים בתו החדש, "\n".getListParagraphs(),
שמחזירה את הפריטים ברשימה בטווח הטקסט הנוכחי.getRuns(),
שמספקת את הרצות הטקסט שחופפות לטווח הטקסט הנוכחי. הרצת טקסט היא קטע טקסט שבו לכל התווים יש אותו סגנון טקסט.
עיצוב טקסט
סגנון הטקסט קובע את הרינדור של תווי הטקסט במצגת, כולל גופן, צבע והיפר-קישור.
הפונקציה getTextStyle()
של טווח טקסט מספקת אובייקט TextStyle
שמשמש
לעיצוב הטקסט. האובייקט TextStyle
מכסה את אותו הטקסט שמופיע בתבנית ההורה שלו TextRange
.
בדוגמה שלמעלה, קודם כל נוצרת תיבת טקסט בשקף הראשון ומגדירה את התוכן שלה ל-"Hello " (שלום). לאחר מכן היא מצרפת את הטקסט "world!". הטקסט שצירפת מודגש, מקושר אל www.example.com
והצבע שלו מוגדר לאדום.
בעת קריאת סגנונות, הפונקציה מחזירה את הערך null אם לטווח יש ערכים מרובים לסגנון. הדוגמה שלמעלה מפיקה את הצהרות היומן הבאות:
Text: Hello; Bold: false Text: world!; Bold: true Text: Hello world!; Bold: null
קיימים סגנונות רבים אחרים שניתן להחיל על טקסט. פרטים נוספים זמינים במסמכי התיעוד של TextStyle
.
עיצוב פסקאות
סגנונות של פסקאות חלים על פסקאות שלמות, וכוללים דברים כמו יישור הטקסט ומרווח בין שורות. הפונקציה getParagraphStyle() ב-TextRange
מספקת אובייקט ParagraphStyle
לעיצוב כל הפסקאות שחופפות לטווח הטקסט ברמה העליונה.
הדוגמה הבאה יוצרת בשקף הראשון תיבת טקסט עם ארבע פסקאות, ולאחר מכן מרכזת את שלוש הפסקאות הראשונות.
עיצוב רשימות
בדומה ל-ParagraphStyle
, ניתן להשתמש ב-ListStyle
כדי לעצב את כל הפסקאות שחופפות לטווח הטקסט ברמה העליונה.
הדוגמה שלמעלה יוצרת בשקף הראשון תיבת טקסט שמכילה ארבע פסקאות: ההכנסה של הפסקה השנייה מתבצעת פעם אחת והפסקה השלישית מבוצעת בהזחה פעמיים. לאחר מכן היא מחילה רשימה מוגדרת מראש לכל הפסקאות. לבסוף, רמת הסידור הפנימי של כל פסקה מתועדת. (רמת הסידור הפנימי של הפסקה מגיעה ממספר הכרטיסיות לפני הטקסט בפסקה). אז מעל הסקריפט יוצר את הצהרות היומן הבאות:
Paragraph 1's nesting level: 0 Paragraph 2's nesting level: 1 Paragraph 3's nesting level: 2 Paragraph 4's nesting level: 0