OSX 응용 프로그램을 자바 스크립트로 만들기
조속한 소스입니다.
win.js
// Generated by CoffeeScript 1.9.0
(function() {
var win;
ObjC["import"]('Cocoa');
win = $.NSWindow.alloc.initWithContentRectStyleMaskBackingDefer($.NSMakeRect(0, 0, 160, 90), $.NSTitledWindowMask | $.NSMiniaturizableWindowMask | $.NSClosableWindowMask, $.NSBackingStoreBuffered, false);
win.title = 'my win';
win.center;
win.makeKeyAndOrderFront(win);
}).call(this);
ObjC["import"]('Cocoa');
에서 Cocoa 프레임워크를 가져오고 $.NSWindow
에서 창을 만듭니다.osacompile -s -l JavaScript -o win.app win.js
와 명령을 하면 win.app가 만들어지기 때문에 open win.app에서 실행할 수 있습니다.위의 예에서는 osacompile에 -s를 건네주는 것으로 윈도우를 만드는 것만으로 완결한, 실행할 수 있는 어플리케이션을 생성하고 있습니다. 그런데
osascript win.js
실행하면 실행되지만 프로그램은 즉시 종료됩니다.그래서 다음 예에서는 osascript 명령에서도 움직이도록 개선했습니다.
win2.js
// Generated by CoffeeScript 1.9.0
(function() {
var app, win;
ObjC["import"]('Cocoa');
ObjC.registerSubclass({
name: 'WinDelegate',
superclass: 'NSObject',
protocols: ['NSWindowDelegate'],
methods: {
'windowWillClose:': {
types: ['void', ['id']],
implementation: function(notification) {
return app.terminate(0);
}
}
}
});
win = $.NSWindow.alloc.initWithContentRectStyleMaskBackingDefer($.NSMakeRect(0, 0, 160, 90), $.NSTitledWindowMask | $.NSMiniaturizableWindowMask | $.NSClosableWindowMask, $.NSBackingStoreBuffered, false);
win.delegate = $.WinDelegate.alloc.init;
win.title = 'my win2';
win.center;
win.makeKeyAndOrderFront(win);
app = $.NSApplication.sharedApplication;
app.setActivationPolicy($.NSApplicationActivationPolicyRegular);
app.activateIgnoringOtherApps(true);
app.run();
}).call(this);
$.NSApplication을 자주 준비하고, 윈도우의 클로즈에 맞추어 terminate 하도록(듯이) 하고 있습니다. 이 때 windowWillClose 메시지를 처리하기 위해 ObjC.registerSubclass를 사용합니다.
osascript win2.js
그렇다면 방금 전과 같은 창이 나타나 닫기 버튼으로 종료를 확인할 수 있다고 생각합니다.소스 세트:
htps : // 기주 b. m / y mtmdk / sx - pjs
참고:
htps : //에서 ゔぇぺぺr. 아 ぇ. 코 m/ぃb ら ry/마 c/레ぇ 아세노테 s/인테라 p p카카치 온 코무니 카치온/R 응쟈ゔぁ Sc리 pt 후라라토 마치온/이자 x. HTML
htp // tyぇr이 w. 코 m / r 치 c ぇ s / 부이 l ぢ g - sx - ps - u thhs
ぃ tp // 이 m/자쿠로이로//ms/1b02378bf9에940602d87
Reference
이 문제에 관하여(OSX 응용 프로그램을 자바 스크립트로 만들기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/ymmtmdk/items/5cf7665eeddf34adf63e텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)