character | 番号 |
line | 番号 |
paragraph | 番号 |
text | 番号 |
word | 番号 |
color | RGB |
最初の文字の色 | |
font | 文字列 |
最初の文字のフォントの名前 | |
size | 整数 |
最初の文字のフォントのサイズ(ポイント) | |
writing code | 'intl'[r/o] |
スクリプトシステムと言語 | |
style | スタイル情報 |
最初の文字のスタイル | |
uniform styles | スタイル情報 |
文字全体のスタイル |
値のクラスであるstringクラスと混同してしまいがちであるが、こちらはオブジェクトクラスである。
つまり、テキストエディタなどのアプリケーションのウィンドウなどに存在している時の文字列と理解すれば良い。
これを変数に代入するとstringクラスとなる。オブジェクトのまま扱いたい場合は、a reference to演算子を使い、参照として変数に代入する。
アプリケーション内では、オブジェクトのまま操作するのが基本であり、そうすることによって、様々な命令を受け付け、フィルタ参照なども使える(場合がある)
常に上位のオブジェクトと組み合わせて使わないと、クラス識別子textと認識されてしまうので注意したい。
tell application "TextEdit"
text of front document
end tell
front documentまでtellに含めた場合は、少々不思議な感じがするが、itを使って明示的に書く必要がある。
tell application "TextEdit"
tell front document
text of it -- テキストが返ってくる
text -- textが識別子のリテラルとして、そのまま返ってくる
end tell
end tell
また、単にtextと書いても単数形と複数形が同じtextなので、どちらか分からないが、書かれている状況でtext(単数形)かevery text(複数形)のどららの意味かが認識される。
こうややこしいことになるなら、text objectと言う名前にでもしてくれた方が良かった、と思わんでも無い。
今思えば、stringの別名としてtextなんか用意するのがいかん、ということになるのだが。
tell application "スクリプティング対応エディタ"
text of document 1
end tell