2012-10-08 5 views
2

터미널 응용 프로그램의 현재 창을 제외한 모든 창을 닫을 빠른 스크립트를 작성하려고합니다. 이 스크립트는 MacRuby와 Scripting Bridge를 사용합니다. Heres는 '나는 지금까지 무엇을 :MacRuby 및 스크립팅 브리지로 창 닫기

#!/usr/local/bin/macruby 

framework "Foundation" 
framework "ScriptingBridge" 

terminal = SBApplication.applicationWithBundleIdentifier("com.apple.Terminal") 
terminal.windows[2].close while terminal.windows.count > 1 

내가 이것을 실행하려고하면, 나는 다음과 같은 오류 얻을 :

undefined method `close' for #<TerminalWindow:0x40033b0e0> (NoMethodError) 

이 접근 방식은 애플 스크립트와 함께 잘 작동하는 것 같다합니다. 아무도 왜 여기서 실패하고 있는지 알 수 있습니까?

답변

2

TerminalWindow API here 사본을 찾았습니다. 이를 사용하여 내가해야 할 일은 다음과 같습니다 :

TerminalSaveOptionsNo = 'no '.unpack('N').first 
terminal.windows[1].closeSaving(TerminalSaveOptionsNo, savingIn: nil)