これを修正しようとする場所さえわかりませんが、誰かが私を正しい方向に向けることができるかもしれません. クリックするとポップオーバーを表示するステータス項目アプリケーションがあります。一部のユーザー操作では、変更やエラーについて警告/通知する NSUserNotification が生成されます。ただし、通知が表示されると、ポップオーバーの背後に表示されるため、それらがオーバーレイされると、ユーザーはその内容を読むことができません。
ポップオーバーの前に通知を強制的に表示する方法はありますか? 前に通知を注文するように。
編集: これは、ユーザーが間違った入力をした後、ポップオーバーの背後に隠れている通知の一部を示す図です。エラー通知を表示するためにポップオーバーを非表示にしたくありません。
ウィンドウで使用するものの種類であるmakeKeyAndOrderFront、activateIgnoringOtherAppsなどを試しましたが、どれもNSUserNotificationには適用されないため、機能しません。
編集 2: 呼び出されたときにポップオーバーがすべての前に表示されるようにするには、ポップオーバーで activateIgnoringOtherApps と becomeFirstResponder を使用しますが、それを取り除いてもポップオーバーの背後に通知が表示されることに注意してください。
編集 3: ポップオーバーは、ステータス バーのステータス項目に対して相対的に表示され
[[self popover] showRelativeToRect:statusItem.view.bounds ofView:statusItem.view preferredEdge:NSMaxYEdge];
ます。クリックすると、ステータス項目はこれを行うメソッドを呼び出します。
- (void)openPopover:(id)sender {
if (![_popover isShown] | (_popoverIsClosing)) {
[_preferencesWindow close];
[NSApp activateIgnoringOtherApps:YES];
[_popover becomeFirstResponder];
[statusItemView setHighlighted:YES];
[[self popover] showRelativeToRect:statusItem.view.bounds ofView:statusItem.view preferredEdge:NSMaxYEdge];
[self performSelector:@selector(defaultTextField)];
NSLog(@"popover opened");
} else {
[_preferencesWindow close];
[NSApp activateIgnoringOtherApps:NO];
NSLog(@"popover closed");
[_popover close];
[_popover resignFirstResponder];
[[NSApplication sharedApplication] hide: self];
[statusItemView setHighlighted:NO];
}
}
助けてくれてありがとう。