问题标签 [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 投票
2 回答
716 浏览

sketch-3 - 如何使用 Cocoascript 在 Sketch 插件中获取复选框输入?

我有一个 Sketch 插件,它根据用户在画板中的选择生成三个不同的文件。我想让用户通过复选框选择他们实际想要生成的三个文件中的哪一个(而不是总是生成所有三个文件)。

我正在寻找有关如何在警报消息中构建复选框的 Cocoascript 函数(如果存在)的任何参考/帮助,因此当触发插件时,警报将弹出并提供三个选项供用户选择.

0 投票
0 回答
51 浏览

javascript - 更改字体新文本

有没有办法将特定字体分配给草图插件中的文本?

我需要创建一个文本并直接为其分配 Arial 字体。

这是我的代码:

我需要定义图层的字体。我怎样才能做到这一点?谢谢。

0 投票
1 回答
842 浏览

sketch-3 - Sketch 插件开发:将符号导出为 SVG 文本

我有一个将选定符号导出到 Sketch 3 中的 SVG 字符串的工作示例。(基于Sketch 的 GitHub中的此代码)

问题是输出失真,我无法看到故障排除的下一个合乎逻辑的步骤。

编码

在代码的最后一点,str是从符号生成的 SVG 的文本值。

输出

输入符号:

在此处输入图像描述

生成的 SVG 预览:

在此处输入图像描述

生成的 SVG 文本:

想法

如您所见,除了失真之外,输出还很大。至少我相信我需要以某种方式修剪或重新调整符号。我不知道失真是从哪里来的。

修复 SVG 标记本身不是解决方案 - 我想在 Sketch 插件代码中看到解决方案。我发现内部 Sketch 代码的文档很难使用,并且一直是解决这个问题的主要障碍。

0 投票
0 回答
219 浏览

javascript - Sketch 插件:如何动态更新 NSButton 组件(Objective-C、Cocoascript)

我正在尝试开发一个 UI 来获取我的草图插件的输入。据我了解,Sketch 允许我们用 JS、Cocoascript 和 Objective-C 编写,并最终将一切都转换为 Objective-C。

我正在使用以下代码来生成 UI 组件,如文本框和下拉菜单。我不确定如何动态连接它们。例如,如果我将下拉列表的值从 a 更改为 b,我想禁用文本框。

我假设应该有一种方法可以在下拉列表更新时触发函数,并且在该函数中,我可以操纵其他 UI 参数。我知道如何操作 UI 组件。我无法弄清楚如何触发 onchange 函数。

我已经尝试通过以下方式调用函数“ui_update”

但没有运气。该函数不会被调用。

任何帮助都会非常有用。干杯!

0 投票
1 回答
249 浏览

plugins - Sketch 插件开发:Sketch 有 API 可以解锁 MSBitmapLayer 的大小吗?

Sketh App 中的解锁尺寸按钮

我可以单击此按钮来解锁 Sketch App 中图层的大小。然后我可以改变图像的宽高比。但我希望我的 Sketch 插件能够完成这项工作,而不是用手点击按钮。是否有用于 Sketch 的 API 来解锁尺寸MSBitmapLayer

我已经尝试过“ [layer setIsLocked:false]”,但这与大小锁定无关。

非常感谢。

0 投票
1 回答
233 浏览

xml - 关闭标签前的 NSXMLElements 断线 - Cocoascript

我正在创建一个 XML 文件。我需要的是在关闭标签之前换行 我预期的打印输出是

相反,我的输出如下:

这是我拥有的代码:

在文档页面中,我发现只有一些关于压缩/扩展空标签(NSXMLNodeOptions)的参考,但是当标签不为空时没有任何格式化标签。

0 投票
2 回答
1217 浏览

javascript - 如何使用 JavaScript 或 AppleScript 多次写入标准数据?

如果我创建一个名为 myscript.js 的 AppleScript 脚本并将其传递给 oascript,它将执行一次 run 函数并将“hello world”写入标准数据输出:

但是,如果我想多次写入标准数据,例如在 for 循环中,我该怎么做?

如果我执行以下操作,它会多次写入标准错误并在外部应用程序中调度多个事件:

唯一的问题是它正在创建错误事件而不是标准数据事件。

在脚本编辑器中,标准数据输出被发送到结果窗口。我想多次打印到结果窗口。 从 Mac OSX 脚本编辑器

更新:
看起来这可能是不可能的。我在这里找到了这句话:

问:我的脚本会在很长一段时间内产生输出。当他们进来时,我如何阅读结果?

答:同样,简短的回答是你不这样做——在命令完成之前,shell 脚本不会返回。在 Unix 术语中,它不能用于创建管道。但是,您可以做的是将命令置于后台(请参阅下一个问题),将其输出发送到文件,然后在文件填满时读取文件。

另外,请注意,如果我想使用 JavaScript 而不是 AppleScript,我应该使用cocoascript而不是osascript吗?

0 投票
1 回答
326 浏览

file-handling - 将文件夹复制到非空目录

是否可以在不先删除目标文件夹的内容的情况下将文件夹复制到非空目标?我目前的实现如下

我需要实现的是用源文件夹的内容覆盖目标文件夹的内容。