Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# MonoMac中的子类NSApplication_C#_Cocoa_Mono_Monomac_Nsapplication - Fatal编程技术网

C# MonoMac中的子类NSApplication

C# MonoMac中的子类NSApplication,c#,cocoa,mono,monomac,nsapplication,C#,Cocoa,Mono,Monomac,Nsapplication,我需要在MonoMac中对NSApplication进行子类化,以覆盖NSApplication的sendEvent(C#terms中的sendEvent)方法,以便接收媒体关键事件(Macbooks上的播放、暂停、下一步、上一步),如下所述: 到目前为止,我提出了以下代码: class MainClass { static void Main (string[] args) { MyApp.Init (); MyApp.Main (args);

我需要在MonoMac中对NSApplication进行子类化,以覆盖NSApplication的sendEvent(C#terms中的sendEvent)方法,以便接收媒体关键事件(Macbooks上的播放、暂停、下一步、上一步),如下所述:

到目前为止,我提出了以下代码:

class MainClass
{
    static void Main (string[] args)
    {
        MyApp.Init ();
        MyApp.Main (args);
    }
}
class MyApp : NSApplication
{
    public override void SendEvent (NSEvent theEvent)
    {
        Console.WriteLine ("event received!");
        base.SendEvent (theEvent);
    }
    public override void SetMainMenu (NSMenu aMenu)
    {
        Console.WriteLine ("main menu set!");
        base.SetMainMenu (aMenu);
    }
}
但是,既没有调用SendEvent也没有调用SetMainMenu(我为测试目的添加了SetMainMenu,因为SetMainMenu应该在启动时调用),因为我没有得到任何控制台输出


正确的方法是什么?

仅对应用程序进行子类化是不足以让您的子类替换正常的应用程序的。您还必须在应用程序列表中设置
NSPrincipalClass

见:


我将尝试Console.WriteLine()以外的其他调试输出方法。写入文件、弹出对话框或使用System.Diagnostics.Trace方法(您可以安装自己的跟踪目标实现)。嗨,Les,您有没有想过这一点?