如何在 C++ 中接收来自 Objective-C 的 NSNotifications课程?
我有一个 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
在 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.
您不能直接使用 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.