2

関数NSBeginAlertSheet(...)には、特にコールバックに必要なすべてのイベントがありdidDismiss:ますが、必要なウィンドウで同じシート アクションを実行できるようにする必要があるため、次の通知を発見しました。

NSWindowDidOrderOffScreenAndFinishAnimatingNotification

シートが閉じられ、アニメーションが終了するたびに投稿されるのはどれですか?私の質問は、それを使用できますか? それとももっと良い方法がありますか?

私は ARC を使用し、.xib使用してウィンドウをロードしますNSWindowController

全体として、ウィンドウをシートとして表示し、すべてのイベントをキャッチする必要があります。

4

3 に答える 3

2

どうしたの

- (void)beginSheet:(NSWindow *)sheet modalForWindow:(NSWindow *)docWindow modalDelegate:(id)modalDelegate didEndSelector:(SEL)didEndSelector contextInfo:(void *)contextInfo

didEndSelectorこれは、次のように見えるオプションを呼び出します。

- (void)sheetDidEnd:(NSWindow *)sheet returnCode:(NSInteger)returnCode contextInfo:(void *)contextInfo;

これはすべてNSApplicationドキュメントにあります。シートを終了するには、次の 2 つの方法があります。

- (void)endSheet:(NSWindow *)sheet returnCode:(NSInteger)returnCode
- (void)endSheet:(NSWindow *)sheet

そのため、呼び出す直前にやりたいことを何でも実行できます。メソッドendSheet:内で実行することもできます。sheetDidEnd:

編集:

[window orderOut:self]これは、呼び出した後にアニメーションが終了し、やりたいことができることを示すプロジェクトの例です。

于 2013-07-26T22:05:01.477 に答える
0

NSWindowDidEndSheetNotificationシートのアニメーションが終了するたびに投稿されます。

于 2013-07-22T17:09:53.460 に答える