2010-11-24 3 views
0

Я пытаюсь открыть видеофайл с Quicktime и затем закрыть его. Видеофайл открывается с [NSWorkspase openfile:path withapplication:@"Quick Time Player"]. Но когда я пытаюсь закрыть окно Quicktime, ничего не происходит. Вот код.Не удалось закрыть окно (QuickTime) с помощью [NSWindow close] или [NSWindow performClose: (id)]

NSMutableArray *titles = [[NSApplication sharedApplication] orderedWindows]; 
int i; 
id obj; 
NSMutableString *mystring; 
for(i=0; i< [titles count]; i++) 
    { 
    obj = (NSWindow*)[titles objectAtIndex:i]; 
    mystring = [obj title]; 
    if([mystring isEqualToString:@"PREVIEW"] == 1) 
    { 
    [obj close]; 
    } 
    //NSLog("Title : %@\n",(NSString*)[obj title]); 
    } 

Я был бы обязан, если бы кто-нибудь мог мне помочь.

ответ

0

Это не сработает, потому что orderedWindows возвращает только окна из вашего приложения. Невозможно получить доступ к объекту NSWindow из другого приложения, такого как QuickTime Player.

Для этого вам придется использовать AppleEvents. Есть много способов отправить их, но самым простым может быть ScriptingBridge. Вот довольно хорошо tutorial.

+0

«orderedWindows» эта функция уже отправляет мне массив NSWindows, который содержит ссылку QuickTime-плеера, потому что он создан из моего собственного приложения, у меня есть объект NSWindow для QuickTIme, мне просто нужно его закрыть. Любые мысли по этому поводу? – Omayr 2010-11-24 10:04:27

1

Эй, я узнал решение, это легко можно сделать с помощью Apple, сценариев, ниже приведен сценарий

tell application "QuickTime Player" 
    repeat with d in documents 
     if name of d is "abc.mp4" then 
      close d 
     end if 
    end repeat 
end tell 

его просто и легко. Этот скрипт даст ошибку, однако он выполнит требуемую задачу. Сначала он захватит контроль над приложением QuickTIme Player, а затем итерацию, чтобы найти окно с заголовком abc.mp4 и, в конце концов, его закроет.

+0

Существует более простой способ: «сообщить программе« QuickTime Player »закрыть (каждый документ с именем« abc.mp4 »)` – Sven 2010-11-25 08:55:14