1

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

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

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

目前我有:

var screenShotPaths = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:mySourcePath error:NULL];

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

(Sketch Plugin)[6547]: TypeError: fileManager.contentsOfDirectoryAtPath_ is not a function. 
(In 'fileManager.contentsOfDirectoryAtPath_( mySourcePath)', 'fileManager.contentsOfDirectoryAtPath_' is undefined)

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

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

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

4

2 回答 2

1

这里的游戏有点晚了,但希望搜索这个的人会发现这很有用。

我发现你必须使用完整的方法:contentsOfDirectoryAtURL_includingPropertiesForKeys_options_error(url,nil,nil,nil);

我对 JS 比较熟悉,所以我使用的是 js 语法。希望其他人可以将其翻译成 Cocoa。

于 2016-12-29T17:32:01.467 回答
0

为我工作:(草图 55)

var fileManager = [NSFileManager defaultManager];
var paths = [fileManager contentsOfDirectoryAtPath:filePath error:null];
于 2019-05-31T11:38:47.347 回答