какао beginSheet: didEndSelector выдавая ошибку - PullRequest
1 голос
/ 21 февраля 2012

Я загружаю лист в свой основной файл .xib, лист является панелью, и у меня нет проблем с отображением или закрытием листа, но при закрытии я получаю сообщение об ошибке:

2012-02-21 11:10:12.142 CollectionTest2[23277:10b] *** -
[AppController customSheetDidClose:returnCode:contextInfo:]: unrecognized selector sent to instance 0x359c00

Вот мой код:

/*Sheet Methods*/

- (void)showCustomSheet: (NSWindow *)window { 

    [NSApp beginSheet: panFilenameEditor modalForWindow: window modalDelegate: self didEndSelector: @selector(customSheetDidClose:returnCode:contextInfo:) contextInfo: nil];
}

- (IBAction)closeCustomSheet:(id)sender {

    [panFilenameEditor orderOut:self];
    [NSApp endSheet:panFilenameEditor];
}

- (void) customSheetDidClose   { 

    NSLog(@"sheet did close");
} 

1 Ответ

1 голос
/ 21 февраля 2012

В вашем методе showCustomSheet вы указываете листу вызвать селектор customSheetDidClose:returnCode:contextInfo: на контроллере приложения.Но такого метода не существует.

Есть два решения:

  • Либо наберите @selector(customSheetDidClose) в своем вызове beginSheet:modalForWindow:modalDelegate:didEndSelector:contextInfo:.
  • Или переименуйте свой customSheetDidCloseMethod до - (void)customSheetDidClose:(NSWindow *)sheet returnCode:(NSInteger)returnCode contextInfo:(void *)contextInfo.
...