Objective c 使用NSUserNotification激活NSWindow
我的场景:我有一个应用程序,它通过一个按钮向OSX通知中心发送通知。这个通知是当有人按码头门铃时告诉我的。该按钮将弹出一个窗口,显示我们的dock摄像头。我可以让窗口在应用程序中显示一个NSButton,但我无法让它显示通知按钮 我试过:Objective c 使用NSUserNotification激活NSWindow,objective-c,cocoa,nsusernotification,Objective C,Cocoa,Nsusernotification,我的场景:我有一个应用程序,它通过一个按钮向OSX通知中心发送通知。这个通知是当有人按码头门铃时告诉我的。该按钮将弹出一个窗口,显示我们的dock摄像头。我可以让窗口在应用程序中显示一个NSButton,但我无法让它显示通知按钮 我试过: - (void)userNotificationCenter:(NSUserNotificationCenter *)center didActivateNotification:(NSUserNotification *)notification {
- (void)userNotificationCenter:(NSUserNotificationCenter *)center didActivateNotification:(NSUserNotification *)notification {
if ([notification.title isEqualToString:@"Doorbell"]) {
[DockCameraWindow makeKeyAndOrderFront:nil];
NSLog(@"CameraWindow");
}
[[NSUserNotificationCenter defaultUserNotificationCenter] removeAllDeliveredNotifications];
}
日志会显示,但窗口不会显示。但是,我的应用程序确实处于前端应用程序状态。您是否尝试过以下操作:--
您是NSSERNotificationCenter的代理吗?使用[DockCameraWindow MakeKeyandDerfront:self];我确实指派了代表,我知道代表正在NSLog(“CameraWindow”)中工作;正在开火。我也尝试了自我而不是零。我没工作,你可能得帮我。我把它放在[DockCameraWindow MakeKeyandDerfront:nil]上面;这是正确的位置吗?只有当您的应用程序不是关键应用程序时,才会显示通知。如果希望无论应用程序是否为密钥都显示通知,则需要为NSUserNotificationCenter指定一个委托,并重写委托方法userNotificationCenter:shouldPresentNotification:以使其返回YES。是否在代码中实现了这样的操作-(void)ApplicationIDFinishLaunching:(NSNotification*)通知{[[NSUserNotificationCenter defaultUserNotificationCenter]setDelegate:self];}-(BOOL)用户通知中心:(NSUserNotificationCenter*)中心应发送通知:(NSUserNotification*)通知{返回是;}Hussain,我的应用程序中已经有你的代码。我的通知正在显示,当我尝试激活它时,它部分不起作用。如上所述,我的NSLog(@“CameraWindow”)启动,但我的DockCameraWindow没有出现。
[NSApp activateIgnoringOtherApps:YES];