SketchMac 系統才有的軟體,可以理解為精簡版的 PS ,比 PS 更適合 UI 設計,Sketch 插件開發的語言是類 Javascript ,而 Sketchup 是一款三維建模軟體,一般用於建築設計、景觀設計還有遊戲場景設計等,插件開發是用的 ruby 語言。完成 Sketch 的插件開發指南這個系列,我也會開始寫 Sketchup 插件開發指南。

本期介紹 artboard 、NSFileManagerNSString 關於文件及文件夾的相關操作。

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 原生開發的 NSFileManagerNSString ,主要用到 NSStringstringWithContentsOfFile 方法,而 NSFileManageriOS 中的文件管理類,關於詳細的 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 。效果如下圖:

這個實驗留給你自己來動手,相關的代碼已經在上文講述過啦。

*

知識星球

更多sketch插件的開發,代碼的下載,可以在知識星球交流。還包括:

1 看到一些好案例關鍵技術解決方案,寫出文章又不成體系,發星球;

2 我會在知識星球發一些非常機密的研究心得;

3 一些非常有技巧的知識,給付費用戶;

4 公眾號的迭代版本,針對文章發更為升級、核心的內容。

5 當然,還有資深的專家在星球里。

*

熱門文章

設計師編程指南之Sketch插件開發 1

*

關於公眾號:

微信公眾號Design-AI-Lab

本公眾號定期更新人工智慧&設計&科技內容。

談點設計,敲點代碼,偶爾創作點人工智慧實驗產品

推薦閱讀:

相关文章