Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 使用NSUserNotification激活NSWindow_Objective C_Cocoa_Nsusernotification - Fatal编程技术网

Objective c 使用NSUserNotification激活NSWindow

Objective c 使用NSUserNotification激活NSWindow,objective-c,cocoa,nsusernotification,Objective C,Cocoa,Nsusernotification,我的场景:我有一个应用程序,它通过一个按钮向OSX通知中心发送通知。这个通知是当有人按码头门铃时告诉我的。该按钮将弹出一个窗口,显示我们的dock摄像头。我可以让窗口在应用程序中显示一个NSButton,但我无法让它显示通知按钮 我试过: - (void)userNotificationCenter:(NSUserNotificationCenter *)center didActivateNotification:(NSUserNotification *)notification {

我的场景:我有一个应用程序,它通过一个按钮向OSX通知中心发送通知。这个通知是当有人按码头门铃时告诉我的。该按钮将弹出一个窗口,显示我们的dock摄像头。我可以让窗口在应用程序中显示一个NSButton,但我无法让它显示通知按钮

我试过:

- (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];