AppleScript的字典怎么看怎么用
新迭代之前忙里偷闲摸鱼了几种脚本的写法:bash, alfred,automator,applescript
这篇就说说这个applescript
- 其实这里的方法有一点消息的意思,跟OC有点像
- 第一行
- 先是方法名split vertically(用竖直线切割)
- 然后v的意思就是动词,类似方法的意思
- 然后接着是对这个方法的描述
- 第二行开始是这个消息的发送格式
- 先是主消息名
- 后边接一个specifier类型的参数(有的时候不用传参数)
- 这个specifier类型是什么在哪儿都找不到,自己领悟并且看其他各种的注释(对,对同一个类型的描述注释都不太一样,像这里这个描述,根本就风马牛不相及)并且搜索各种别人的插边球回答并且翻看了一些别人写的AS代码,最后实践试出来,这个类型的意思是:window tab session一类的东西
- 之后是描述
- 第三行以及之后就是次消息名
- 用中括号括起的表示可选参数,没用的就是必选
- text类型就是String类型
- 最后一行一个箭头加后边,是返回值类型的意思
- n表示是名词,是类
- 然后第一部分是包含和被包含关系 elements,这块基本不是用的,类似类图的感觉
- 第二部分是方法properties,这块非常重要,是你要使用的
- 这个方法比上面的方法形式要简单,不需要传参数,括号里就是返回值类型,后边接着描述
- 方法调用的方式是:[返回值] = [方法] of [类]
5、举例
| tell application "iTerm" set session1 to (current session of current window) write session1 text "cd ~/AndroidStudioProjects/HqyxEduStudentAndroid" set session2 to (split vertically session1 with profile "Teacher") write session2 text "cd ~/AndroidStudioProjects/Tea" set session3 to (split horizontally session1 with profile "Common") write session3 text "cd ~/AndroidStudioProjects/SharedLibrary" split horizontally session2 with profile "MyProfile" end tell |
| split vertically session1 with profile "Teacher" command "cd ~/AndroidStudioProjects/Tea" |
- 在讲之前先科普一下自己在探索过程中发现的这个iterm里的几个概念
- window,这个是所有app共通的,就是整个程序窗口
- tab,这里没有出现使用,指的是一个个tab页面
- session,是会话的意思,这里值的是一个个小窗口,或者感觉是一个个小进程
- 然后下一段是两句话
- 第一句:先是括号内通过application类的类方法获取当前的窗口(因为是元类,所以可以直接调方法),然后通过这个窗口的方法获取当前的session,并且把这个session进行赋值
- 第二个句是给这个session的窗口中运行命令
- 注意,这个session是默认创建的,我们都控制不了
- 下一段还是两句话
- 先是括号内,这句号本身就是一个方法调用,在session1上切分一个新的窗口,并且使用teacher的配置文件来配置,这句话会返回新创建的session,然后把这个session记录下来并且赋值
- 第二句就是跟上面一样了
- 非常值得一提的是,第一句括号里的方法本来是还有一个command参数的,使用这个参数的话两句话可以合并为一句话(表格中第二行),但是非常遗憾的是,它会莫名奇妙报错,所以只能放弃这种写法
- 后边几段就都是一样了
- 资料非常少,可以看到用的人非常少,需要自己探索
- 居然有两本书的资料可以方便下到,但是这两本书里能给的帮助真是不多
- 用过的人都说不好,确实是正在没落的语言
- 会莫名奇妙崩溃,探索能曲线救国的方法
- 线程迷之不安全,最好写得线程健壮
- 获取当前窗口
- 调用对象的属性方法
- 赋值方法
- 可以使用小括号进行优先执行
- 判断某个应用是否开启
- if else
- 延时:delay 1(延时1S后继续执行)
- 打印结果:say “string” (直接发声进行打印)
AppleScript的字典怎么看怎么用的更多相关文章
- 改变word的语言字典
改变word的语言字典 上周末看论坛有人提出否有方法用代码改变word的语言字典,因为默认的语言会影响现用语言输入的拼写器和其他校对工具.我们的Spire.doc正好支持,正好闲来无事所以我用西班牙语 ...
- linux awk 一看就懂
awk是什么 awk是linux环境下的一个命令行工具,但是由于awk强大的能力,我们可以为awk工具传递一个字符串,该字符串的内容类似一种编程语言的语法,我们可以称其为Awk语言,而awk工具本身则 ...
- Trie字典树 静态内存
静态字典树 看了好久的字典树,挺简单的一个结构,愣是看了这么久才写出来... 专心一点就不会这样了.... 接下来就去刷刷字典树的题吧....... 下面是字典树.... 定义节点 typedef s ...
- iOS实现类似QQ的好友列表,自由展开折叠(在原来TableView的基础上添加一个字典,一个Button)
//直接代码 只包含 折叠展开字典的处理搭建#import "CFViewController.h" @interface CFViewController ()<UITab ...
- Python字典、集合之高山流水
字典dict字典是由大括号{键:值}组成.字典是无序的.字典的键必须是不可变数据类型.不能使用列表作为键,但可以使用元祖作为字典的键.例如: dict_ = {"test":&qu ...
- python中的这些坑,早看早避免。
python中的这些坑,早看早避免. 说一说python中遇到的坑,躲坑看这一篇就够了 传递参数时候不要使用列表 def foo(num,age=[]): age.append(num) print( ...
- 还没有写完准备弡上cpickle 还有字典
#!/usr/bin/python #Filename: cpickle.py import cPickle as p import os shoplistfile="shoplist.da ...
- crunch字典生成
密码破解基本有三种方法:第一种是人工猜解(垃圾桶工程和被动信息收集): 第二种是基于字典暴力破解(主流) 在kali里,是默认自带了字典的,分别放在下面三个文件中:/usr/share/wordlis ...
- Python基础——原生数据类型(字典,列表,元组,字符串)
字典Dictionary 字典定义了键值对的1对1管理. 1.定义字典 请看下面的栗子,我们先创建了一个具有两个元素的字典,每对都是key:value的形式. 我们能通过key得到value,但是不能 ...
随机推荐
- Yii2中的入口文件环境配置
默认的Debug配置 在入口文件中 defined ( 'YII_DEBUG' ) or define ( 'YII_DEBUG', true ); defined ( 'YII_ENV' ) or ...
- Viewbox在UWP开发中的应用
Windows 8.1 与Windows Phone 8.1的UAP应用,终于在Windows 10上统一到了UWP之下.原来3个不同的project也变为一个.没有了2套xaml页面,我们需要用同一 ...
- 如何为编程爱好者设计一款好玩的智能硬件(三)——该选什么样的MCU呢?
一.我的构想:如何为编程爱好者设计一款好玩的智能硬件(一)——即插即用.积木化.功能重组的智能硬件模块构想 二.别人家的孩子:如何为编程爱好者设计一款好玩的智能硬件(二)——别人是如何设计硬件积木的! ...
- Unity3d + NGUI 的多分辨率适配
一.当下移动设备的主流分辨率(数据来自“腾讯分析移动设备屏幕分辨率分析报告”) 1.1 iOS设备的分辨率主要有: 宽 高 宽高比 960 640 1.5 1136 640 1.775 1024 ...
- http学习笔记(三)
几乎所有的http通信都是由TCP/IP承载的.http好比一辆汽车,而TCP是一条公路,所有的汽车都要在公路上跑,看看http是如何在tcp这条公路上往返的. 首先简单地看看tcp,TCP连接是通过 ...
- WaterfallTree(瀑布树) 详细技术分析系列
前言 WaterfallTree(瀑布树) 是最强纯C#开源NoSQL和虚拟文件系统-STSdb专有的(版权所有/专利)算法/存储结构. 参考 关于STSdb,我之前写过几篇文章,譬如: STSdb, ...
- osgi 1
Helloworld入门 准备: eclipse 3.4 需要jar,—— eclipse 自带的,plugin下面有很多,抛开里面的jar,很多都是当前项目不需要的,如果不适用eclipse而是直接 ...
- 解析for循环
循环的作用就是让一个程序.连续进行一遍又一遍的循环: for循环: 分为四大类: 初始状态:相当于他一开始的数值,或条件: 循环条件:满足进行循环,不满足则停止: 循环体:循环的东西,程序: 状态改变 ...
- Android开发学习之路-下拉刷新以及GridView的使用
GridView是类似于ListView的控件,只是GridView可以使用多个列来呈现内容,而ListView是以行为单位,所以用法上是差不多的. 主布局文件,因为要做下拉刷新,所以加了一个Prog ...
- Atititcmd cli环境变量的调用设置与使用
Atititcmd cli环境变量的调用设置与使用 1.1. Cgi 环境变量的调用设置与使用1 1.2. 环境变量vs 系统变量1 1.3. 环境变量的分类 A.与服务器相关的环境变量B ,与客户 ...