Я пишу приложение элемента состояния, у которого нет NSWindow. Я подтягиваю NSOpenPanel, когда пользователь нажимает на элемент статуса. Как это сделать, если приложение не использует NSWindow?Показать NSOpenPanel в приложении NSStatusItem
Спасибо.
Я пишу приложение элемента состояния, у которого нет NSWindow. Я подтягиваю NSOpenPanel, когда пользователь нажимает на элемент статуса. Как это сделать, если приложение не использует NSWindow?Показать NSOpenPanel в приложении NSStatusItem
Спасибо.
Запустите это как модальное окно вместо листа.
В методе IBAction ваше состояние, вызовите это:
window = [[NSApp currentEvent] window];
Вы можете передать это окно в beginSheetModalForWindow NSOpenPanel в: completionHandler: для того, чтобы отобразить открытую панель в виде листа.
Вы можете обнаружить, что элемент статуса сам закручивается и исчезает, когда появляется лист, но он появляется, когда вы отклоняете лист.
Вы можете просто вызвать вашу открытую панель от действия NSMenuItem как:
NSOpenPanel *panel = [NSOpenPanel openPanel];
[panel setAllowsMultipleSelection:YES];
[panel setCanChooseDirectories:YES];
NSUInteger result = [panel runModal];
NSMutableArray *paths = [NSMutableArray array];
if(result == NSFileHandlingPanelOKButton) {
for (NSURL *url in [panel URLs]) {
NSLog(@"%@", url);
}
}
Отлично, это именно то, что мне было нужно. – David 2010-12-04 07:13:07