gpt4 book ai didi

c++ - 使用 Core foundation 向 Mountain Lion 通知中心发送消息

转载 作者:太空狗 更新时间:2023-10-29 20:13:56 25 4
gpt4 key购买 nike

我正在用 Qt 开发一个守护进程,我想向 Mountain Lion 通知中心发送消息:-

enter image description here

Qt 似乎缺乏对此的支持,这并不奇怪,因为它不是跨平台的。

如果我使用 Cocoa,看起来我会使用带有 NSUserNotification 的 NSUserNotificationCenter 类。

直到现在,每当我看到一个Foundation 类,总是有一个匹配的Core Foundation 类,但似乎没有CFUserNotificationCenter,但是有一个 CFUserNotification。

那么,我说得对吗?NSNotificationCenter 是 Cocoa 用于此目的的,是否可以在没有 Cocoa 的情况下向通知中心发送消息?

如果可能,请有人用 C 或 C++ 发布代码示例,或者至少指出要使用哪些函数?

最佳答案

您可以轻松地 integrate Qt/C++ code with Cocoa/Objective-C . XCode 支持 Objective-C++,它是 C++ 和 Objective-C 的混合体。这些文件将具有 .mm 扩展名,并使用 OBJECTIVE_SOURCES 变量添加到您的 QMake 项目中(不幸的是,它不在官方 QMake 文档中)。所以只需将 NSUserNotification 代码添加到 C++ 类中即可。

QMake 项目文件

HEADERS += Foo.h
OBJECTIVE_SOURCES += Foo.mm
LIBS += -framework Foundation
INCLUDEPATH += /System/Library/Frameworks/Foundation.framework/Versions/C/Headers

Foo.h

#ifndef FOO_H
#define FOO_H
class Foo {
public:
void test();
};

#endif

Foo.mm

#include "foo.h"
#include <NSUserNotification.h>

void Foo::test() {
NSUserNotification *userNotification = [[[NSUserNotification alloc] init] autorelease];
userNotification.title = @"My Great Title";
userNotification.informativeText = @"Blah Blah Blah";

[[NSUserNotificationCenter defaultUserNotificationCenter] deliverNotification:userNotification];
}

关于c++ - 使用 Core foundation 向 Mountain Lion 通知中心发送消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18898725/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com