我最近了解到 JavaScript for Automation 的存在。对我来说更有趣的是调用 Objective-C API 的能力,JavaScript 中的 Objective-C 类的子类,以及将 JavaScript 实现的子类的对象传递回使用父类作为接口定义的 Objective-C API 的能力。
我遇到的最大问题是我并不完全了解 Objective-C,而我知道这一点。这就是我为此使用 JXA 的部分原因(主要原因是我发现你甚至可以使用 JavaScript for Automation 来完成这一切,这非常有趣。)
我也不知道 Cocoa API,但我正在尝试通过 JXA 学习它。
那么,我将如何使用 JXA 创建和填充 JavaScript 窗口?
我到目前为止的代码是:
ObjC.import('Cocoa');
var frame = $.NSMakeRect(100, 100, 200, 200);
var styleMask = $.NSMiniaturizableWindowMask |
$.NSClosableWindowMask |
$.NSTitledWindowMask;
var rect = $.NSWindow.contentRectForFrameRect = frame;
rect.styleMask = styleMask;
var window = $.NSWindow.alloc.initWithContentRect = rect;
window.styleMask = styleMask;
window.setBackgroundColor = $.NSColor.blueColor;
除了 Apple 在 JXA 文档中提供的关于 Objective-C 绑定的片段之外,几乎没有任何示例。
那么有人可以告诉我如何用 JXA 设计一个基本的窗口,也许还有一个标签、文本框和按钮?