設計師編程指南之Sketch插件開發 2
Sketch 是 Mac 系統才有的軟體,可以理解為精簡版的 PS ,比 PS 更適合 UI 設計,Sketch 插件開發的語言是類 Javascript ,而 Sketchup 是一款三維建模軟體,一般用於建築設計、景觀設計還有遊戲場景設計等,插件開發是用的 ruby 語言。完成 Sketch 的插件開發指南這個系列,我也會開始寫 Sketchup 插件開發指南。
本期介紹 artboard 、NSFileManager 和 NSString 關於文件及文件夾的相關操作。
1
新建 artboard
新建一個 artboard ,並設置其位置,寬、高。記得最後需要添加到 page 里。
var doc = context.document;
var page=doc.currentPage();
var newArtboard=[MSArtboardGroup new];
log(newArtboard)
newArtboard.name=new;
var artboardFrame = [newArtboard frame];
artboardFrame.setX(0);
artboardFrame.setY(0);
artboardFrame.setWidth(100);
artboardFrame.setHeight(100);
page.addLayers([newArtboard])
2
文件及文件夾相關的操作
此部分涉及到 IOS 原生開發的 NSFileManager 和 NSString ,主要用到 NSString 的 stringWithContentsOfFile 方法,而 NSFileManager 是 iOS 中的文件管理類,關於詳細的 NSFileManager 建議查看 IOS 官方開發文檔。
Objective-C 與 Cocoascript 寫法的差異在上一篇已經說明過。下面的 js 也可以改寫成 OC 的形式。
2.1 創建一個目錄
var path=/Users/zhank/Downloads/draw;
NSFileManager.defaultManager().createDirectoryAtPath_withIntermediateDirectories_attributes_error(path, !0, {}, null);
2.2 讀取文件的內容
var path=/Users/zhank/Downloads/undraw_create_f05x.svg;
var data=NSString.stringWithContentsOfFile_encoding_error(path, NSUTF8StringEncoding, nil);
log(data)
2.3 新建文件,並寫入內容
var str=abc,
path=/Users/zhank/Downloads/draw/test.txt;
NSString.stringWithString(str).writeToFile_atomically_encoding_error(path, !0, NSUTF8StringEncoding, nil);
2.4 文件改名及移動位置
var from=/Users/zhank/Downloads/draw/test.txt,
to=/Users/zhank/Downloads/draw/test2.txt;
var isExist=NSFileManager.defaultManager().fileExistsAtPath(from);
if(isExist){
NSFileManager.defaultManager().moveItemAtPath_toPath_error(from, to, null);
}else{
NSApp.displayDialog(@"文件不存在");
}
2.5 刪除文件或文件夾
var path=/Users/zhank/Downloads/draw/test2.txt;
NSFileManager.defaultManager().removeItemAtPath_error(path, null);
關於文件及文件夾的相關操作,這個要注意下刪除的文件或文件夾 mac 的廢紙簍里是不存在的哦,千萬別誤刪!從這個角度看,網上隨意裝的 sketch 插件並不一定安全,有可能代碼里就會有刪除文件夾的命令,或者竊取文件的命令。
sketch 插件的許可權還是很高的哦~用代碼刪除文件啥的並沒有什麼提示。
3
動手實驗
現在你可以試著開發一個小功能啦,比如:
讀取一個保存了各種設計圖尺寸的 json 文件,並生成多個尺寸的 artboard 。效果如下圖: