Tag: applescript

Apple Script中的字符串操作

今天,我发现AppleScript允许我们导入Foundation ,并且我们具有很多功能,包括NSString 。 看我的剧本 使用脚本添加 使用框架“基金会” 属性NSString:对当前应用程序的NSString的引用 这是我可以从字符串中删除最后一个路径组件的方法 在myRemoveLastPath(myPath)上 将myString设置为NSString的stringWithString:myPath 将removeLastPathString设置为myString的stringByDeletingLastPathComponent removeLastPathString作为文本 结束myRemoveLastPath 您需要使用NSString’s stringWithString:为NSString ,并使用as text NSString’s stringWithString:回Apple Script字符串。 您可以通过调用函数。 另一件事是,我们可以支持参数起作用,例如此脚本 在remove:remove_string fromString:source_string上 将s_String设置为NSString的stringWithString:source_string 将r_String设置为NSString的stringWithString:remove_string 返回s_String的stringByReplacingOccurrencesOfString:r_String withString:“” 结束remove:fromString: 原始故事https://github.com/onmyway133/blog/issues/89

Apple Script中的调用函数

我一直在使用Apple Script作为Finder扩展程序FinderGo的工具。 由于沙箱,所有脚本都必须位于“ Application Scripts文件夹中。 今天,我正在重写我的Xcode扩展名XcodeWay。 在Xcode 8之前,我们可以使用Xcode插件和各种魔术使梦想成真在myway133 / XcodeWay:XcodeWay / Helper / FTGEnvironmentManager.m @ 1.0 #L50上。 但是自从引入Xcode Source Editor Extension以来,它不起作用。 所以我将XcodeWay重写为myway133 / XcodeWay @ 1.1.0 (发行版)的扩展 扩展程序必须在沙箱中运行。 如果将XcodeWayExtensions.entitlements App Sandbox切换为NO ,则不会加载。 因此,沙箱在很多方面限制了我想要做的事情。 在Xcode 9下,我无法使用NSWorkspace打开Finder 。 因此,我想我也可以使用Apple Script ,它的工作原理很吸引人。 唯一的限制是代码重用,因为我只知道如何运行整个脚本。 一种方法是导入其他Apple脚本stackoverflow.com/questions/2606136/import-applescript-methods-in-another-applescript,但我想我将在1个脚本中编写所有函数,并找出如何调用特定函数。 按功能,我也指处理程序,过程。 多亏了开源,我遇到了这段脚本编写器,这几乎启发了我。 所以这是我的脚本,其中包含许多功能。 这是ScriptRunner,解释了如何构建NSAppleEventDescriptor 。 请注意,您需要import Carbon 导入Carbonfunc eventDescriptior(functionName:String)-> NSAppleEventDescriptor { var psn = […]

ScriptingBridge —与Swift和AppleScript进行通信

对于开发人员和高级用户而言, AppleScript是macOS上的一项出色技术。 借助AppleScript,用户可以创建可运行其他应用程序的自动化流程。 但是,作为开发人员,有时您希望使用AppleScript的功能在Xcode中构建应用程序,而无需使用单独的脚本文件。 这就是ScriptingBridge出现的地方。 要在任何应用程序中使用AppleScript,有两种方法可以执行此操作: 编写一个单独的AppleScript文件,并使用NSAppleScript API执行和运行脚本。 使用ScriptingBridge在Swift或Objective-C中使用AppleScript。 我们将看第二个选项:ScriptingBridge。 特别是, 如何在Swift中使用ScriptingBridge而不需要AppleScript文件或事件Objective-C桥接。 如果您打算为Mac App Store编写应用程序,则有 Apple指出的 限制 。 您还可以查看Craig Hockenberry的这篇文章,其中展示了如何在Mac Store应用中使用AppleScript API。 最重要的是: 不能将ScriptingBridge与Mac App Store中的应用程序一起使用。 关于Objective-C ScriptingBridge ,Apple已经提供了准备代码的工具。 幸运的是, Majesty Software的 Tony Ingraldi 拥有 大量的Python脚本 ,可以在Swift中创建相同的代码。 有关此内容的更多详细信息,请查看他在GitHub上的仓库或此处的博客文章。 现在,让我们尝试通过编写 一个将选项卡网址从Safari窗口中拉出的应用程序来执行此操作。 可以在这里找到该应用的仓库。 从AppleScript定义构建Swift代码 从GitHub上的SwiftScripting存储库下载python脚本工具。 在仓库的目录中,运行以下命令: pip install clangsdef /Applications/Safari.app> Safari.sdefsdp -fh –basename Safari Safari.sdef./sbhc.py Safari.h./sbsc.py Safari.sdef […]

自动将生成的源文件添加到xcode项目

我正在使用IDL为我的xcode项目自动生成源文件。 有谁知道我可以自动将生成的文件添加到项目? 目前我必须从项目中删除当前文件并添加新的文件。 这真的很烦人。 使用文件夹引用适用于头文件,但xcode不想将文件夹引用中的任何文件识别为源文件。 有没有人find解决这个问题的办法?