如何在 C++ 中接收来自 Objective-C 的 NSNotifications课程?

发布于 2024-11-07 19:39:06 字数 260 浏览 0 评论 0原文

我有一个 Objective-C++ 类,它将自身添加为 Cocoa NSView 上事件的观察者。我希望能够将 NSNotifications 发送到 C++ 类的方法而不是 Objective-C 方法或块。我该怎么做?

我的情况是这样的:

  • A - Objective-C++ 类
  • B - NSView

B 由 A 封装。我想收到 B 事件之一的通知。但是,处理该事件的方法必须引用包含 B 的 A 实例。

I have an Objective-C++ class that adds itself as an observer for an event on a Cocoa NSView. I would like to be able to send the NSNotifications to a method of a C++ class instead of an Objective-C method or block. How can I do this?

My situation is this:

  • A - Objective-C++ class
  • B - NSView

B is encapsulated by A. I want to be notified of one of B's events. However, the method handling that event MUST have a reference to the instance of A that contains B.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

知你几分 2024-11-14 19:39:06

在 Objective-C 中创建一个简单的包装类,它指向您的 C++ 实例并通过调用 C++ 方法来处理通知。

Create a dead simple wrapper class in Objective-C that points to your C++ instance and handles the notification by calling the C++ method.

岁月苍老的讽刺 2024-11-14 19:39:06

您不能直接使用 C++ 方法或简单的 C 函数来使用通知。

您必须将对 C++ 方法的调用包装为实际的 Objective-C 方法或块,然后将通知委托转发给 C++ 方法。

You can not consume the notification with a C++ method directly, or simple C function for that matter.

You must wrap the call to the C++ method is an actual Objective-C method, or block, and then delegate forward the notification to the C++ method.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文