标签: nsusernotification

将 OS X 10.8 通知中心 (NSUserNotification) 与 Java 结合使用

我在 OS X 10.8 中的通知中心遇到了困难。我编写了一个包装器来通过 JNA 提供对 NSUserNotification 和 NSUserNotificationCenter 类的 Java 访问,但功能有限。我能够发送通知,只要 .jar 通过 JavaApplicationStub 从 .app 包运行,它就会显示。但是,当通知样式设置为“警报”时,以下行始终会记录到控制台:

11/29/12 8:37:12.537 PM usernoted[162]: Failed to validate application at (null) -67061
Run Code Online (Sandbox Code Playgroud)

接下来,单击通知会导致以下内容记录到控制台:

11/29/12 8:38:15.291 PM usernoted[162]: Cannot find originating application to launch for event action.  file://localhost/Users/geoffodonnell/Projects/bin/GuiTest.app/ is not the same app as the one that sent the original notification.
Run Code Online (Sandbox Code Playgroud)

我确实为 NSUserNotificationCenter 类提供了委托,但是这些方法只有在 .jar 在包之外执行时才会运行。当然,这违背了目的,因为通知永远不会显示。

任何人都可以对上述两个错误提供任何见解吗?

我想知道 JavaApplicationStub 是否妨碍了我,但是当涉及到典型应用程序将如何响应通知中心事件时,我一无所知。

java macos jna nsusernotification

6
推荐指数
1
解决办法
2153
查看次数

单击显示NSUserNotification additionalActions

additionalActions

在上图中,您可以在OS X上看到两个通知.第一个来自我的应用程序,第二个来自Apple的Reminders.app.在图像中,您可以看到otherButtonTitle"完成"和actionButtonTitle"稍后".

第二个通知,即来自Reminders.app的通知,表现完全不同.它会使鼠标指向下方的这个小箭头指示单击时有更多操作.事实上,你只需要点击一次在"后来",它会给你一对夫妇更多可供选择的方案.

但是,我无法使用相同的行为来处理我的通知.鼠标悬停时我没有得到小箭头,只需点击"稍后"即可显示更多选项(通知只是被解雇).只有在"稍后"按住鼠标按钮时才会显示更多选项,这一点并不明显.

我错过了一些明显的东西吗?如何让我的通知与Reminders.app中的通知完全相同?

macos cocoa nsusernotification nsusernotificationcenter

5
推荐指数
1
解决办法
980
查看次数

Cocoa:在app最前面强制NSUserNotification

相当简单,我有一个应该发送通知的应用程序,但如果应用程序是最前面的,它将不会这样做.从NSUserNotificationCenter类参考:

用户通知中心保留决定是否向用户呈现所传递的用户通知的权利.例如,如果应用程序已经位于最前面(委托可以覆盖此操作),它可能会禁止通知.

从我可以收集的内容来看,它与userNotificationCenter:shouldPresentNotification:NSUserNotificationCenterDelegate协议参考中显示的方法有关,但我无法弄清楚如何实现它.我已经将我的课程设置为NSUserNotificationCenterDelegate,所以不是这样.

有任何想法吗?

编辑:在我设置为NSUserNotificationCenterDelegate的类中,我使用它来尝试覆盖原始方法,如果应用程序位于最前面,则默认为NO:

- (BOOL)userNotificationCenter:(NSUserNotificationCenter *)center shouldPresentNotification:(NSUserNotification *)notification {
return YES;
}
Run Code Online (Sandbox Code Playgroud)

但没有任何反应.

cocoa delegates nsusernotification

4
推荐指数
1
解决办法
1686
查看次数

在运行时更改OSX Notification Center图标

是否(现在)有正式支持的方式在我的应用程序运行时更改OSX通知中心的NSUserNotifications图标?我在网上搜索,但答案并不是"最近的",所以我只想仔细检查.

我想在它的标题/名称旁边显示当前播放的spotify曲目的艺术作品

我到现在为止所做的事真的很难看:

  1. 暂时用IconFamily生成的.icns文件替换我的应用程序的CFBundleIconFile (我知道我不应该在包中修改anthing,但我不是要将应用程序带到App Store)

  2. 重启通知中心"忘记"它最终缓存了图标

    NSRunningApplication*notificationCenter = [NSRunningApplication runningApplicationsWithBundleIdentifier:@"com.apple.notificationcenterui"]; [notificationCenter终止];

    (我知道我真的不应该这样做)

macos cocoa nsnotificationcenter nsusernotification

4
推荐指数
1
解决办法
901
查看次数

检测其他按钮单击(NSUserNotification)

我在互联网上搜索过,但发现的唯一方法是循环播放

- (void)userNotificationCenter:(NSUserNotificationCenter *)center didDeliverNotification:(NSUserNotification *)notification
Run Code Online (Sandbox Code Playgroud)

如下所示:https://stackoverflow.com/a/21365269/1795083

但是,我的应用程序有时会在短时间内显示多个通知,因此这不是真正有效也不是有效.当按下垃圾按钮时,邮件应用程序如何处理它.必须至少有一个被调用的私有方法.有没有人遇到过它?提前致谢

macos cocoa objective-c nsusernotification

4
推荐指数
1
解决办法
649
查看次数

始终显示NSUserNotification

NSUserNotification当我的应用程序中的某些内容发生时,我出现了.即使应用程序是最前面的应用程序(即始终显示),有没有办法显示通知?

(如果我在其他应用程序中,它会显示出来)

xcode osx-mountain-lion nsusernotification

3
推荐指数
1
解决办法
1657
查看次数

有没有办法知道NSUserNotificationCenter中有多少NSUserNotifications?

是否有任何非私密方式可以知道NSUserNotificationCenterMountain Lion 中的通知中心()中有多少通知?不仅是来自我的应用的通知,还来自所有应用.

所以,总结一下,我想要做的是检索这里显示的通知数量: 在此输入图像描述

我试图搜索,但我找不到有关此信息.有任何想法吗?
提前致谢!

macos cocoa objective-c nsusernotification nsusernotificationcenter

3
推荐指数
1
解决办法
609
查看次数

应用程序处于活动状态时,不会显示Swift NSUserNotification

我是OSX开发的新手,我正在创建一个应用程序,当事情发生时触发通知.但是当应用程序是关键应用程序时它没有显示通知,因为它是默认行为.即使应用程序是关键应用程序,我也想展示它们.但是我只找到了用objective-c编写的这个问题的解决方案,但现在我正在使用Swift.我想知道如何用Swift实现它.

nsusernotification nsusernotificationcenter swift osx-yosemite

3
推荐指数
1
解决办法
2425
查看次数

为OS X创建交互式通知

Mac基础知识:通知会通知您,可以使用文本输入字段创建交互式警报:

例如,您可以直接通过通知回复聊天.

OS X聊天提醒

我该如何实现它?例如,我有一个通知:

let notification = NSUserNotification.init()
notification.hasActionButton = true
notification.actionButtonTitle = "Agree"
notification.title = "Header"
notification.informativeText = "Text."

NSUserNotificationCenter.default.deliver(notification)
Run Code Online (Sandbox Code Playgroud)

macos notifications nsusernotification swift swift3

3
推荐指数
1
解决办法
2316
查看次数

NSUserNotificationCenter未显示通知

我不确定我是否出了问题,但是从我能找到的例子中可以看出来.我写了那个小小的helloworld.

#import <Foundation/Foundation.h>
#import <Foundation/NSUserNotification.h>


int main (int argc, const char * argv[])
{
    NSUserNotification *userNotification = [[NSUserNotification alloc] init];
    userNotification.title = @"Some title";
    userNotification.informativeText = @"Some text";

    [[NSUserNotificationCenter defaultUserNotificationCenter] deliverNotification:userNotification];

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我编译它:

cc -framework Foundation -o app main.m
Run Code Online (Sandbox Code Playgroud)

它编译,我可以执行它,但它不会显示任何东西.由于某些原因,没有任何东西出现.我读到如果应用程序是主要角色,则可能无法显示通知.如何让它显示通知?

nsusernotification nsusernotificationcenter

1
推荐指数
1
解决办法
2816
查看次数