2012-02-21 14 views
1

メインの.xibにシートをロードしていますが、シートはパネルであり、シートを表示したり閉じたりしても問題ありませんが、閉じるとエラーメッセージが表示されます:ココアbeginSheet:didEndSelectorがエラーをスローする

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

はここに私のコードです:あなたshowCustomSheet方法で

/*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

、アプリのコントローラにセレクタcustomSheetDidClose:returnCode:contextInfo:を呼び出すためにシートを伝えます。しかし、そのような方法はありません。

  • どちらかがbeginSheet:modalForWindow:modalDelegate:didEndSelector:contextInfo:にお電話で@selector(customSheetDidClose)を渡す:

    は、二つの解決策があります。

  • customSheetDidCloseMethodの名前を- (void)customSheetDidClose:(NSWindow *)sheet returnCode:(NSInteger)returnCode contextInfo:(void *)contextInfoに変更してください。
+0

@DD - ありがとう、私は再びドキュメントを見ていましたが、理解していませんでしたが、あなたの説明は理にかなっています。アプリケーションは現在正常に動作しています。 – PruitIgoe

関連する問題