ボタンのクリックで表示を切り替えるカスタムNSWindowサブクラスがあります。また、ウィンドウがキー状態を辞退すると(たとえば、ユーザーがウィンドウの外側をクリックして)、ウィンドウが消えるようにしたいと思います。NSWindow windowDidResignKeyが再表示された後に呼び出されない
私はwindowDidResignKey:
を実装するデリゲートを持っていますが、このデリゲートメソッドは、ウィンドウが鍵をはじめて辞めるときにのみ呼び出されます。ここで
は、私は(ユーザーアクションやwindowDidResignKey経由)ウィンドウの表示を切り替える方法は次のとおりです。
- (void) toggleWindowAtPoint:(NSPoint)point
{
// Attach/detach window.
if (!attachedWindow)
{
attachedWindow = [[CustomWindow alloc] attachedToPoint:point];
attachedWindow.delegate = self;
[attachedWindow setLevel:NSMainMenuWindowLevel+1]; // show window in front of all other apps on desktop
[attachedWindow makeKeyAndOrderFront:self];
}
else
{
attachedWindow.delegate = nil;
[attachedWindow orderOut:self];
[attachedWindow release];
attachedWindow = nil;
}
}
ここwindowDidResignKeyの私の実装です:
- (void) windowDidResignKey:(NSNotification *)note
{
[self toggleWindowAtPoint:NSMakePoint(0, 0)];
}
私が探してる初めてそのカスタムウィンドウが表示され、windowDidResignKey:
が呼び出されます。その後、カスタムウィンドウが再表示されるたびにwindowDidResignKey:
が呼び出されません。
ありがとうthe suggエステオン、それは私のために働かなかった。 – figelwump