如何在C ++类中从Objective-C接收NSNotifications?

时间:2011-05-13 22:20:04

标签: c++ objective-c cocoa objective-c++ nsnotifications

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

我的情况是这样的:

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

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

2 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:2)

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

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