Невозможно закрыть окно (QuickTime) с помощью [NSWindow close] или [NSWindow executeClose: (id)] - PullRequest
0 голосов
/ 24 ноября 2010

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

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]);
    }

Буду признателен, если кто-нибудь сможет мне помочь.

Ответы [ 3 ]

1 голос
/ 24 ноября 2010

Для этого вам необходимо использовать NSWorkspace и NSRunningApplication .

Здесь приведен пример для того же вопроса:

NSRunningApplication - Завершить

1 голос
/ 25 ноября 2010

Привет, я нашел решение, это легко сделать с помощью сценариев 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 голосов
/ 24 ноября 2010

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

Для этого вам нужно использовать AppleEvents.Существует много различных способов их отправки, но, возможно, самый простой из них будет ScriptingBridge .Вот довольно хороший учебник .

...