У меня есть приложение, которое при нажатии кнопки должно показывать модальное окно. У меня есть несколько вопросов по этому поводу, но я собираюсь ограничить это тем, что вызывает у меня головную боль.
Я хочу добавить, что я уже делаю что-то похожее, что применительно к этому конкретному случаю не будет работать. Что я уже делаю, так это модально показываю NSOpenPanel. Это код для этого.
Этот код находится внутри приложения Delegate.
-(IBAction) respondToPublishAction:(id) sender {
NSArray *fileTypes = [NSArray arrayWithObjects:@"xml", @"txt", nil];
NSOpenPanel *oPanel = [NSOpenPanel openPanel];
NSString *startingDir = [[NSUserDefaults standardUserDefaults] objectForKey:@"StartingDirectory"];
if (!startingDir)
startingDir = NSHomeDirectory();
//Setting the attributes
[oPanel setAllowsMultipleSelection:NO];
[oPanel setTitle:@"XML file for publishing services"];
[oPanel beginSheetForDirectory:startingDir file:nil types:fileTypes
modalForWindow:[self window] modalDelegate:self
didEndSelector:@selector(openPanelDidEnd:returnCode:contextInfo:)
contextInfo:nil];
}
Теперь, что я пытаюсь сделать, и это не сработает
Я создал xib-файл с HUD-окном (как оно называется в IB), который действует как NSPanel. Я создал windowcotroller, который слушает кнопку (testButton). Вот код:
@interface BrowserWindowController : NSWindowController {
}
-(IBAction) testButton:(id) sender;
@end
Я установил, что владельцем файла xib-файла является класс BrowserWindowController, и связал кнопку с кнопкой test.
Вернуться к приложению. При нажатии кнопки я хочу показать эту панель модально. Вот код:
- (IBAction) respondToBrowseAction:(id) sender {
browsePanel = [[BrowserWindowController alloc] initWithWindowNibName:@"BroserWindow"];
}
Я не вижу никакой функции в API, такой как NSOpenPanel, чтобы показывать это окно модально.
Спасибо всем, кто может ответить.