问题标签 [cocoascript]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
543 浏览

objective-c - 使用 Cocoascript 为 NSWindow 设置背景图像

我正在尝试以这种样式创建一个窗口:

在此处输入图像描述

我有以下代码,但我只是得到一个背景。估计是找不到图了

我正在为Sketch App 插件编写这个,所以我必须使用Cocoascript。我的插件结构看起来像

我不确定将背景图像放在哪里或如何引用它。它必须在 manifest.json 中吗?在哪个键下?

0 投票
0 回答
48 浏览

javascript - 在文件之间使用全局数组

我目前正在编写一个 Sketch 插件,我正在尝试将数据存储在一个全局数组中。在copy.sketchscript中生成数据,在paste.sketchscript我试图检索数组数据。但是,当我记录变量时,它返回空。我该怎么做才能正确更新数组数据,以便每个函数都可以访问它?

这是我的代码。

库/common.js

复制.sketchscript

粘贴.sketchscript

0 投票
0 回答
151 浏览

multithreading - Cocoa 脚本多线程

我需要在后台线程中运行一个长时间运行的循环,并在主线程上更新一次 UI。我怎么能用 Cocoa 脚本做到这一点?

我正在尝试创建一个 Sketch 插件。

谢谢你。

0 投票
1 回答
287 浏览

cocoascript - 如何在可可脚本(草图)中正确组合“点符号”和“大括号符号”?

在草图文档中指出,点和大括号符号可以相互混合。它甚至是一个可用的示例

不幸的是,如果通过“运行自定义脚本”命令执行,此代码在草图中不起作用并产生错误:

这可以通过添加额外的(and来避免)

为什么会发生这种情况?是否有任何可用的文档如何准确地混合大括号和点符号?是一些错误还是预期的行为?

0 投票
1 回答
1031 浏览

macos - 来自 NSColor 的 RGB 值

我正在尝试读取 osx 颜色列表 (.clr),但无法解释颜色的值。

背景:我正在为一个名为Sketch的设计程序编写一个调色板插件。插件是用cocoascript编写的,它是 JS 和 Objective-C/Cocoa 之间的桥梁。这允许您使用像 NSColor 这样的类

我正在使用此代码来读取文件:

这可行,我可以将颜色记录到 OS X 控制台应用程序。问题是我不确定如何使用输出:

CSS、Sketch 和 Photoshop 中的 rgba 值为

我想也许它只是将范围从 255 缩放到 1。但是当我做数学时,它并没有完全加起来。b 值,例如:

但应该是161。

还有其他方法可以转换颜色吗?

0 投票
1 回答
1155 浏览

javascript - Sketch Plugin:如何以编程方式使图层可导出?

因此,在Sketch中,您可以将图层/组标记为可导出。

在此处输入图像描述

然后图层/组可以导出为 .png/.svg/.pdf 等。我最近试图制作一个 Sketch 插件,我需要将图层/组标记为可从代码导出。代码中的层使用MSLayer和组表示MSLayerGroup。草图文档还不够成熟,所以我使用ClassDump来提取应用程序中已使用的所有标头。我一直在寻找一种似乎可以完成我的工作的方法,但已经有好几天了,我仍然不走运。有人可以在这方面帮助我吗?

0 投票
1 回答
394 浏览

javascript - 如何将此 CocoaScript “大括号表示法”转换为 JavaScript “点表示法”(草图)?

如何将这些 CocoaScript “大括号表示法”转换为 JavaScript “点表示法”语法?

我一直在努力使用 CocoaScript “大括号表示法”格式,并希望使用 JavaScript 来代替将它们组合起来。我不确定这是否在所有情况下都可能,就像上面一样。我几乎可以正常工作,但是当我使用上述语法时,我并没有把它弄好。

我试过类似的东西:

所以我不明白如何将这些“内部变量/属性”(例如“withIntermediateDirectories: true”)转换为 JavaScript 点符号语法。

0 投票
1 回答
207 浏览

javascript - 如何在 Sketch 插件中使用 setImage

我目前正在编写一个 Sketch 插件。

我正在做这样的事情:

控制台输出:setPatternImage: 已弃用。使用setImage:而不是 MSImageData «Scripting Legacy»

我该如何解决这个问题?这会导致崩溃。

提前致谢。

0 投票
1 回答
294 浏览

javascript - Sketch 3 插件更改画板颜色

所以我似乎找不到改变艺术板背景颜色的方法。

这就是我目前只是缺少设置颜色的方法。

这个指向草图参考的链接可能会有所帮助(对我没有帮助) http://developer.sketchapp.com/reference/class/

0 投票
2 回答
239 浏览

sketch-3 - Sketch 插件 - NSFileManager contentsOfDirectoryAtPath - 不是一个函数

我正在尝试为 Sketch 制作一个插件,使我能够自动生成多语言资产。

现在,我选择启动该过程的语言文件列表。我使用 NSOpen 面板来选择这些。对于每个语言文件,它会为该语言创建一个新页面,并找到带有特殊标签的文本层,并用翻译后的副本替换副本。

在执行此操作时,我希望它检查另一个文件夹 screenshots/lang 中是否有任何屏幕截图,并存储这些图像的文件路径列表。这就是我现在卡住的地方。

目前我有:

当我尝试以当前状态在草图中运行我的插件时,控制台说:

我已经尝试过查看很多问题,其中列表没有返回,返回 null 等,但我找不到 contentOfDirectoryAtPath 不是函数返回的任何问题。

这是因为它是一个由应用程序运行的插件并且在文件系统中导航是一个安全问题吗?

任何帮助将非常感激。谢谢!