Numbers

[Numbers]ナンバーズで祭日入りカレンダー

Screencapture-20230610-144702
AppleScript サンプルコード

【スクリプトエディタで開く】 |

AppleScript サンプルソース(参考)
行番号ソース
001#!/usr/bin/env osascript
002----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
003#
004#
005#
006#
007# com.cocolog-nifty.quicktimer.icefloe
008----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
009##自分環境がos12なので2.8にしているだけです
010use AppleScript version "2.8"
011use framework "Foundation"
012use scripting additions
013
014property refMe : a reference to current application
015
016####設定項目
017##文字サイズ
018set numFontSize to 14 as number
019##フォント名はPS名?
020set strFontName to "Osaka-Mono" as text
021
022
023########################
024#####ここから処理
025####日付情報の取得--> 今の『年』の数値を求める
026set ocidDate to refMe's NSDate's |date|()
027set ocidCalendar to refMe's NSCalendar's autoupdatingCurrentCalendar()
028set ocidCalendarUnitYear to refMe's NSCalendarUnitYear
029set ocidCalendarUnitMonth to refMe's NSCalendarUnitMonth
030set ocidDateComponents to ocidCalendar's components:((ocidCalendarUnitYear) + (ocidCalendarUnitMonth)) fromDate:ocidDate
031set numSetYear to (ocidDateComponents's |year|) as integer
032set numSetMonth to (ocidDateComponents's |month|) as integer
033#####各種リスト
034set listWeekDay to {"日", "月", "火", "水", "木", "金", "土"} as list
035set listYear to {(numSetYear - 1), (numSetYear), (numSetYear + 1)} as list
036set listMonth to {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12} as list
037########################
038#####ダイアログを前面に
039tell current application
040  set strName to name as text
041end tell
042####スクリプトメニューから実行したら
043if strName is "osascript" then
044  tell application "Finder" to activate
045else
046  tell current application to activate
047end if
048#####年ダイアログを出す
049try
050  set objResponseYear to (choose from list listYear with title "年選択" with prompt "年を選択してください" default items (item 2 of listYear) OK button name "OK" cancel button name "キャンセル" with multiple selections allowed without empty selection allowed)
051on error
052  log "エラーしました"
053  return
054end try
055if objResponseYear is false then
056  return
057end if
058set numSetYear to (objResponseYear) as integer
059########################
060#####月ダイアログを出す
061if numSetMonth = 12 then
062  set numSetMonth to 1 as integer
063else
064  set numSetMonth to numSetMonth + 1 as integer
065end if
066try
067  set objResponseMonth to (choose from list listMonth with title "月選択" with prompt "月を選択してください" default items (item (numSetMonth) of listMonth) OK button name "OK" cancel button name "キャンセル" with multiple selections allowed without empty selection allowed)
068on error
069  log "エラーしました"
070  return
071end try
072if objResponseMonth is false then
073  return
074end if
075set numSetMonth to (objResponseMonth) as integer
076########################
077tell application "Numbers" to launch
078##ナンバーズ 表題部のみ処理
079tell application "Numbers"
080  make new document
081  tell front document
082    activate
083    set strDociID to id as text
084  end tell
085  tell document id strDociID
086    tell front sheet
087      set name to "カレンダー"
088      tell front table
089        set name to "" & numSetYear & "年" & numSetMonth & "月のカレンダー"
090        set rangeTable to cell range
091        tell rangeTable
092          set background color to {65535, 65535, 65535}
093          set text color to {0, 0, 0}
094          set vertical alignment to center
095          set format to text
096          set font size to numFontSize
097          set font name to strFontName
098          set alignment to center
099        end tell
100        tell cell "A1"
101          set value to "" & numSetYear & "/" & numSetMonth & "" as text
102        end tell
103        tell cell "B1"
104          set value to "曜日" as text
105        end tell
106        set row count to 35
107      end tell
108    end tell
109  end tell
110end tell
111
112########################
113#####カレンダー初期化
114set ocidCalendar to refMe's NSCalendar's calendarWithIdentifier:(refMe's NSCalendarIdentifierGregorian)
115set ocidLocale to refMe's NSLocale's alloc()'s initWithLocaleIdentifier:("ja_JP")
116ocidCalendar's setLocale:(ocidLocale)
117#####日付コンポーネント初期化
118set ocidDateComponents to refMe's NSDateComponents's alloc()'s init()
119ocidDateComponents's setYear:(numSetYear)
120ocidDateComponents's setMonth:(numSetMonth)
121set ocidDate to ocidCalendar's dateFromComponents:(ocidDateComponents)
122###指定月のカレンダーの最大日数-->繰り返し回数になる
123set ocidMonthDateRange to ocidCalendar's rangeOfUnit:(refMe's NSCalendarUnitDay) inUnit:(refMe's NSCalendarUnitMonth) forDate:(ocidDate)
124set numDateLength to ocidMonthDateRange's |length|
125
126
127########################
128###祭日データJSONで取得
129set strURL to "https://holidays-jp.github.io/api/v1/date.json" as text
130set ocidJsonURL to refMe's NSURL's URLWithString:(strURL)
131set ocidOption to refMe's NSDataReadingMappedIfSafe
132set listDownLoadData to refMe's NSData's dataWithContentsOfURL:(ocidJsonURL) options:(ocidOption) |error| :(reference)
133set ocidJsonData to (item 1 of listDownLoadData)
134#####################
135###JSON初期化 してレコードに格納
136set listJSONSerialization to (refMe's NSJSONSerialization's JSONObjectWithData:(ocidJsonData) options:0  |error| :(reference))
137set ocidJsonData to item 1 of listJSONSerialization
138set ocidHolidayDict to refMe's NSDictionary's alloc()'s initWithDictionary:(ocidJsonData)
139
140#####################
141###取得するカレンダーの月(処理としては不要なんだけど、今後の展開のために処理)
142set numYear to ocidCalendar's component:(refMe's NSCalendarUnitYear) fromDate:(ocidDate)
143set numMonth to ocidCalendar's component:(refMe's NSCalendarUnitMonth) fromDate:(ocidDate)
144###年はそのまま
145set strYear to numYear as text
146###月はゼロ月
147set strMonth to (text -2 through -1 of ("00" & (numMonth as text))) as text
148###日付毎処理
149set numCntRows to 2
150
151repeat with numDayNo from (1) to (numDateLength)
152  -->ここまでは年と月でのカレンダーなので
153  ###日付を入れて
154  (ocidDateComponents's setDay:(numDayNo))
155  set ocidDate to (ocidCalendar's dateFromComponents:(ocidDateComponents))
156  set ocidWeekDayClender to (ocidCalendar's components:(refMe's NSWeekdayCalendarUnit) fromDate:(ocidDate))
157  ###日付
158  log ocidDate as date
159  ###日付番号
160  log numDayNo
161  set strDayNoZeroSupp to (text -2 through -1 of ("00" & numDayNo)) as text
162  #####################
163  ###曜日処理
164  set numWeekDayNo to (ocidWeekDayClender's |weekday|)'s intValue()
165  ###曜日番号
166  log numWeekDayNo
167  ###曜日テキスト
168  set strWeekDayJp to (item numWeekDayNo of listWeekDay) as text
169  ###祭日取得用
170  set strDateText to ("" & strYear & "-" & strMonth & "-" & strDayNoZeroSupp & "") as text
171  ###祭日取得
172  set ocidHolidayValue to (ocidHolidayDict's valueForKey:(strDateText))
173  ###祭日処理
174  if ocidHolidayValue is (missing value) then
175    set numChkHoliday to 0 as integer
176  else
177    set numChkHoliday to 1 as integer
178    set strHolidayValue to ocidHolidayValue as text
179    log strHolidayValue
180    ####Cの列
181    tell application "Numbers"
182      tell document id strDociID
183        tell front sheet
184          tell front table
185            tell cell ("C" & numCntRows & "")
186              ###Cの列に祭日名を入力
187              set value to (strHolidayValue) as text
188            end tell
189          end tell
190        end tell
191      end tell
192    end tell
193  end if
194  
195  tell application "Numbers"
196    tell document id strDociID
197      tell front sheet
198        set name to "カレンダー"
199        tell front table
200          tell cell ("A" & numCntRows & "")
201            ###日付を入れて
202            set value to "" & strDayNoZeroSupp & "" as text
203          end tell
204          tell cell ("B" & numCntRows & "")
205            ###曜日を入れる
206            set value to strWeekDayJp as text
207          end tell
208          if strWeekDayJp is "日" then
209            tell row numCntRows
210              ###日曜日の色
211              set background color to {64945, 37783, 61881}
212              set text color to {38078, 202, 22456}
213            end tell
214          else if strWeekDayJp is "土" then
215            ###土曜日の色
216            tell row numCntRows
217              set background color to {41120, 61174, 59832}
218              set text color to {5140, 16191, 37008}
219            end tell
220          else
221            tell row numCntRows
222              ###平日の色
223              set background color to {65535, 65535, 65535}
224              set text color to {0, 0, 0}
225            end tell
226          end if
227          if numChkHoliday = 1 then
228            tell row numCntRows
229              ###祭日の色
230              set background color to {64945, 37783, 61881}
231              set text color to {38078, 202, 22456}
232            end tell
233          end if
234        end tell
235      end tell
236    end tell
237  end tell
238  
239  
240  set numCntRows to numCntRows + 1
241end repeat
AppleScriptで生成しました

|

[Numbers]タブ区切りテキストで保存する

#!/usr/bin/env osascript
----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
#
#
#
#
# com.cocolog-nifty.quicktimer.icefloe
----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
use AppleScript version "2.8"
use framework "Foundation"
use scripting additions

property refMe : a reference to current application
property refNSString : a reference to refMe's NSString
property refNSMutableString : a reference to refMe's NSMutableString
property refNSArray : a reference to refMe's NSArray
property refNSURL : a reference to refMe's NSURL

set objFileManager to refMe's NSFileManager's defaultManager()


####起動させる
tell application "Numbers"
launch
activate
end tell
####起動を待つ
repeat
tell application "Numbers"
activate
set boolActivate to frontmost
end tell
if boolActivate is false then
delay 1
else
exit repeat
end if
end repeat

tell application "Numbers"
set numCntWindow to (count of every window) as integer
end tell
if numCntWindow = 0 then
return "ファイルがありません"
end if

tell application "Numbers"
tell front window
set strFileName to name as text
end tell
tell front document
tell active sheet
set strSheetName to name as text
tell first table
set strTableName to name as text
set rangeTable to cell range
set selection range to rangeTable
set listValue to value of cells of rows
end tell
end tell
end tell
end tell

set ocidValueArray to refNSArray's alloc()'s initWithArray:listValue
set ocidTSVstrings to refNSMutableString's alloc()'s initWithCapacity:0

repeat with itemValueArray in ocidValueArray
####行の最後にタブを入れない用
set numCntArrayItem to count of itemValueArray
repeat with itemLineValueArray in itemValueArray
log itemLineValueArray
set ocidTSVstrings to (ocidTSVstrings's stringByAppendingString:itemLineValueArray)
####最後のアイテムは処理しなし
if numCntArrayItem > 1 then
####区切り文字の挿入
set ocidTSVstrings to (ocidTSVstrings's stringByAppendingString:"\t")
end if
####カウントダウン
set numCntArrayItem to numCntArrayItem - 1 as integer
end repeat
###行毎改行
set ocidTSVstrings to (ocidTSVstrings's stringByAppendingString:"\n")
end repeat


###################################
#####ダイアログ
###################################a
###ダイアログのデフォルト
set ocidUserDesktopPath to (objFileManager's URLsForDirectory:(refMe's NSDesktopDirectory) inDomains:(refMe's NSUserDomainMask))
set aliasDefaultLocation to ocidUserDesktopPath as alias
set strPromptText to "名前を決めてください"
set strDefaultName to (strFileName & "." & strSheetName & "." & strTableName & ".tsv")
tell current application to activate
####実在しない『はず』なのでas «class furl»
set aliasSaveFilePath to (choose file name default location aliasDefaultLocation default name strDefaultName with prompt strPromptText) as «class furl»
####UNIXパス
set strSaveFilePath to POSIX path of aliasSaveFilePath as text
####ドキュメントのパスをNSString
set ocidSaveFilePath to refNSString's stringWithString:strSaveFilePath
####ドキュメントのパスをNSURL
set ocidSaveFilePathURL to refNSURL's fileURLWithPath:ocidSaveFilePath
###拡張子取得
set strFileExtensionName to ocidSaveFilePathURL's pathExtension() as text
###ダイアログで拡張子を取っちゃった時対策
if strFileExtensionName is not "tsv" then
set ocidSaveFilePathURL to ocidSaveFilePathURL's URLByAppendingPathExtension:"tsv"
set ocidSaveFilePath to ocidSaveFilePathURL's |path|()
end if

#####属性を指定しておく
set ocidAttrDict to refMe's NSMutableDictionary's alloc()'s initWithCapacity:0
set strUID to user ID of (system info) as text
###所有者ID
ocidAttrDict's setValue:strUID forKey:(refMe's NSFileOwnerAccountID)
###グループID
ocidAttrDict's setValue:80 forKey:(refMe's NSFileGroupOwnerAccountID)
####パーミッション 700
ocidAttrDict's setValue:448 forKey:(refMe's NSFilePosixPermissions)

###ファイル作成時のダミーテキスト
set ocidTempText to refNSString's stringWithString:""
###ファイルを作る
set boolMakeNewFile to (objFileManager's createFileAtPath:ocidSaveFilePath |contents|:ocidTempText attributes:ocidAttrDict)
####内容を書き込む UTF8で書き込む
set boolFileWrite to (ocidTSVstrings's writeToFile:ocidSaveFilePath atomically:false encoding:(refMe's NSUTF8StringEncoding) |error|:(reference))

return

|

[Numbers]セルの値を順番に取得する

#!/usr/bin/env osascript
----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
#
#
#
#
# com.cocolog-nifty.quicktimer.icefloe
----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
use AppleScript version "2.8"
use framework "Foundation"
use scripting additions

####この名前のシートを処理したい
set strTargetSheetName to "listURL" as text

####この表の内容で処理したい
set strTargerTableName to "QRコード作成用リスト" as text


set aliasPath2Me to (path to me) as alias

tell application "Finder"
set aliasContainerDirPath to container of aliasPath2Me as alias
set aliasFilePath to document file "input.numbers" of folder "Documents" of aliasContainerDirPath as alias
end tell

#############################################
#########アプリケーションの起動
#############################################
####起動させる
tell application "Numbers"
launch
activate
end tell
####起動を待つ
repeat
tell application "Numbers"
activate
set boolActivate to frontmost
end tell
if boolActivate is false then
delay 1
else
exit repeat
end if
end repeat
#############################################
#########ファイルを開く
#############################################

tell application "Numbers"
open aliasFilePath
end tell



#############################################
#########開いているドキュメントの中から選ぶ
#############################################
tell application "Numbers"
###Windowの数を数えます
set numCntOpenWindow to (count of every window) as integer
###ファイル名格納用のリストの初期化
set recordFileName to {} as record
set listFileName to {} as list
###カウントアップ用の値の初期化
set numCntWindowNo to 1 as integer
###ウィンドの数だけ繰り返し
repeat numCntOpenWindow times
####WindowIDからファイル名を取得
set strFileName to name of window numCntWindowNo as text
####WindowIDからファイル名を取得
set strWindowID to id of window numCntWindowNo as text
####リストに格納
if strFileName is not "" then
###
set recordTemp to (run script "return {|" & strFileName & "|:\"" & strWindowID & "\"}")
set recordFileName to recordFileName & recordTemp as record
copy strFileName to end of listFileName
end if
####カウントアップ
set numCntWindowNo to numCntWindowNo + 1 as integer
end repeat
end tell
#############################################
#########ファイル選択
#############################################
tell current application to activate
try
set objResponse to (choose from list listFileName with title "どの書類で処理しますか" with prompt "選んでください" default items (item 1 of listFileName) OK button name "OK" cancel button name "キャンセル" with multiple selections allowed without empty selection allowed)
on error
log "エラーしました"
return
end try
if objResponse is false then
return
else
set strResponse to objResponse as text
end if

#############################################
#########開いているドキュメントの中から選ぶ
#############################################

tell application "Numbers"
set numCntOpenWindow to (count of every window) as integer

###カウントアップ用の値の初期化
set numCntWindowNo to 1 as integer
###ウィンドの数だけ繰り返し
repeat numCntOpenWindow times
###順番にファイル名取得
set strWindowName to name of window numCntWindowNo
if strWindowName is strResponse then
####window
tell window numCntWindowNo
properties
end tell
#####document
tell document numCntWindowNo
set numCntSheet to (count of every sheet) as integer
set numCntSheetNo to 1 as integer
repeat numCntSheet times
####sheet
tell sheet numCntSheetNo
properties
set strSheetName to name as text
if strSheetName is strTargetSheetName then
log "このシートが処理対象"
set numCntTable to (count of every table) as integer
set numCntTableNo to 1 as integer
repeat numCntTable times
tell table numCntTableNo
set strTableName to name as text
if strTableName is strTargerTableName then
properties
log "この表が処理対象"
set numCntRowNo to row count as integer
set numCntRow to 2 as integer
repeat (numCntRowNo - 1) times
####Bセルの値
set strCellNo to "B" & numCntRow
tell cell strCellNo
set strBvalue to value as text
end tell
###Cセルの値
set strCellNo to "C" & numCntRow
tell cell strCellNo
set strCvalue to value as text
end tell


set numCntRow to numCntRow + 1 as integer
end repeat
else
log "処理しない"
end if
end tell
set numCntTableNo to numCntTableNo + 1 as integer
end repeat

set numCntLine to 1 as integer
else
log "処理しない"
end if
end tell
set numCntSheetNo to numCntSheetNo + 1 as integer
end repeat
end tell
end if
####カウントアップ
set numCntWindowNo to numCntWindowNo + 1 as integer
end repeat
end tell



return

|

[Numbers]Window Document Sheetまで(途中)

#!/usr/bin/env osascript
----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
#
#
#
#
# com.cocolog-nifty.quicktimer.icefloe
----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
use AppleScript version "2.8"
use framework "Foundation"
use scripting additions

####この名前のシートを処理したい
set strTargetSheetName to "listURL" as text


#############################################
#########開いているドキュメントの中から選ぶ
#############################################
tell application "Numbers"
###Windowの数を数えます
set numCntOpenWindow to (count of every window) as integer
###ファイル名格納用のリストの初期化
set recordFileName to {} as record
set listFileName to {} as list
###カウントアップ用の値の初期化
set numCntWindowNo to 1 as integer
###ウィンドの数だけ繰り返し
repeat numCntOpenWindow times
####WindowIDからファイル名を取得
set strFileName to name of window numCntWindowNo as text
####WindowIDからファイル名を取得
set strWindowID to id of window numCntWindowNo as text
####リストに格納
if strFileName is not "" then
###
set recordTemp to (run script "return {|" & strFileName & "|:\"" & strWindowID & "\"}")
set recordFileName to recordFileName & recordTemp as record
copy strFileName to end of listFileName
end if
####カウントアップ
set numCntWindowNo to numCntWindowNo + 1 as integer
end repeat
end tell
#############################################
#########ファイル選択
#############################################
try
set objResponse to (choose from list listFileName with title "どの書類で処理しますか" with prompt "選んでください" default items (item 1 of listFileName) OK button name "OK" cancel button name "キャンセル" with multiple selections allowed without empty selection allowed)
on error
log "エラーしました"
return
end try
if objResponse is false then
return
else
set strResponse to objResponse as text
end if

#############################################
#########開いているドキュメントの中から選ぶ
#############################################

tell application "Numbers"
set numCntOpenWindow to (count of every window) as integer

###カウントアップ用の値の初期化
set numCntWindowNo to 1 as integer
###ウィンドの数だけ繰り返し
repeat numCntOpenWindow times
###順番にファイル名取得
set strWindowName to name of window numCntWindowNo
if strWindowName is strResponse then
####window
tell window numCntWindowNo
properties
end tell
#####document
tell document numCntWindowNo
properties
set numCntSheet to (count of every sheet) as integer
set numCntSheetNo to 1 as integer
repeat numCntSheet times
####sheet
tell sheet numCntSheetNo
properties
set strSheetName to name as text
if strSheetName is strTargetSheetName then

log "このシートが処理対象"
else
log "処理しない"
end if
end tell
set numCntSheetNo to numCntSheetNo + 1 as integer
end repeat
end tell
end if
####カウントアップ
set numCntWindowNo to numCntWindowNo + 1 as integer
end repeat
end tell



return

|

その他のカテゴリー

Accessibility Acrobat Acrobat 2020 Acrobat AddOn Acrobat Annotation Acrobat ARMDC Acrobat AV2 Acrobat BookMark Acrobat Classic Acrobat DC Acrobat Dialog Acrobat Distiller Acrobat Form Acrobat JS Acrobat Manifest Acrobat Menu Acrobat Open Acrobat Plugin Acrobat Preferences Acrobat Preflight Acrobat python Acrobat Reader Acrobat SCA Acrobat SCA Updater Acrobat Sequ Acrobat Sign Acrobat Stamps Acrobat Watermark Acrobat Windows Acrobat Windows Reader Admin Admin Account Admin Apachectl Admin configCode Admin Device Management Admin LaunchServices Admin Locationd Admin loginitem Admin Maintenance Admin Mobileconfig Admin Permission Admin Pkg Admin Power Management Admin Printer Admin SetUp Admin SMB Admin Support Admin System Information Admin Tools Admin Users Admin Volumes Adobe Adobe FDKO Adobe RemoteUpdateManager AppKit Apple AppleScript AppleScript do shell script AppleScript List AppleScript ObjC AppleScript Osax AppleScript PDF AppleScript Pictures AppleScript record AppleScript Script Editor AppleScript Script Menu AppleScript Shortcuts AppleScript Shortcuts Events AppleScript System Events AppleScript System Events Plist AppleScript Video Applications AppStore Archive Attributes Automator BackUp Barcode Barcode QR Barcode QR Decode Bash Basic Basic Path Bluetooth BOX Browser Calendar CD/DVD Choose Chrome CIImage CityCode CloudStorage Color com.apple.LaunchServices.OpenWith Console Contacts CotEditor CURL current application Date&Time delimiters Desktop Device Diff Disk Dock DropBox Droplet eMail Encode % Encode Decode Encode UTF8 Error EXIFData ffmpeg File Finder Firefox Folder FolderAction Fonts GIF github Guide HTML HTML Entity Icon Illustrator Image Events Image2PDF ImageOptim iPhone iWork Javascript Jedit Json Label Leading Zero List locationd LRC lsappinfo LSSharedFileList m3u8 Mail MakePDF Map Math Media Media AVAsset Media AVconvert Media AVFoundation Media AVURLAsset Media Movie Media Music Memo Messages Microsoft Microsoft Edge Microsoft Excel Mouse Music NetWork Notes NSArray NSArray Sort NSBezierPath NSBitmapImageRep NSBundle NSCFBoolean NSCharacterSet NSColor NSColorList NSData NSDecimalNumber NSDictionary NSError NSEvent NSFileAttributes NSFileManager NSFileManager enumeratorAtURL NSFont NSFontManager NSGraphicsContext NSImage NSIndex NSKeyedArchiver NSKeyedUnarchiver NSLocale NSMutableArray NSMutableDictionary NSMutableString NSNotFound NSNumber NSOpenPanel NSPasteboard NSpoint NSPredicate NSPrintOperation NSRange NSRect NSRegularExpression NSRunningApplication NSScreen NSSize NSString NSString stringByApplyingTransform NSStringCompareOptions NSTask NSTimeZone NSURL NSURL File NSURLBookmark NSURLComponents NSURLResourceKey NSURLSession NSUserDefaults NSUUID NSView NSWorkspace Numbers OAuth OneDrive PDF PDFAnnotation PDFAnnotationWidget PDFContext PDFDisplayBox PDFDocumentPermissions PDFImageRep PDFKit PDFnUP PDFOutline perl Photoshop PlistBuddy pluginkit postalcode PostScript prefPane Preview Python QuickLook QuickTime ReadMe Regular Expression Reminders ReName Repeat RTF Safari SaveFile ScreenCapture ScreenSaver SF Symbols character id SF Symbols Entity sips Skype Slack Sound Spotlight sqlite SRT StandardAdditions Swift System Settings TCC TemporaryItems Terminal Text Text CSV Text MD Text TSV TextEdit Tools Translate Trash Twitter Typography UI Unit Conversion UTType valueForKeyPath Video VisionKit Visual Studio Code VMware Fusion Wacom webarchive webp Wifi Windows XML XML EPUB XML OPML XML Plist XML RSS XML savedSearch XML SVG XML TTML XML webloc XML XMP YouTube zoom