Hello,

As stated here (http://www.monobjc.net/index.php?page=events-and-delegates),
there may be some problems with some classes as the Objective-C
runtime may perform aggressive caching on delegate methods.

I am still searching a way to accommodate with this caching while
preserving the flexibility of the .NET event handlers...

Regards, Laurent Etiemble.

2008/10/16 Miguel De Buf <[EMAIL PROTECTED]>:
> It works if I set the delegate in interface builder for the window to
> MyWindow, and if I modify my code to :
>
> using System;
> using System.Collections.Generic;
> using System.Text;
>
> using Monobjc;
> using Monobjc.Cocoa;
>
> namespace windows_events
> {
>   [ObjectiveCClass]
>   public class MyWindow : NSObject
>   {
>       public MyWindow() : base() { }
>       public MyWindow(IntPtr native_object) : base(native_object) { }
>
>       [ObjectiveCMessage("awakeFromNib")]
>       public void awakeFromNib()
>       {
>           Console.WriteLine(this.GetType().ToString() + " : awakeFromNib");
>       }
>
>       [ObjectiveCMessage("windowWillClose:")]
>       public void windowWillClose(NSNotification notification)
>       {
>           Console.WriteLine("window closes");
>       }
>   }
> }
>
>
> Cheers,
> Miguel
>
>
> Miguel De Buf wrote:
>>
>> Hi,
>>
>> I try to catch a window close event in my controller class, but the
>> eventhandler never gets executed.  This is my code :
>>
>> using System;
>> using System.Collections.Generic;
>> using System.Text;
>>
>> using Monobjc;
>> using Monobjc.Cocoa;
>>
>> namespace windows_events
>> {
>>   [ObjectiveCClass]
>>   public class MyWindow : NSWindow
>>   {
>>       public MyWindow() : base() { }
>>       public MyWindow(IntPtr native_object) : base(native_object) { }
>>
>>       [ObjectiveCMessage("awakeFromNib")]
>>       public void awakeFromNib()
>>       {
>>           Console.WriteLine(this.GetType().ToString() + " :
>> awakeFromNib");
>>           this.WindowWillClose += new
>> WindowWillCloseEventHandler(MyWindow_WindowWillClose);
>>       }
>>
>>       void MyWindow_WindowWillClose(NSNotification notification)
>>       {
>>           Console.WriteLine("window closes");
>>       }
>>   }
>> }
>>
>> The documentation says, just add an event handler.  So I subclassed from
>> NSWindow and just added an event handler, but it never gets executed.
>>
>> Why ?
>> Many thanks,
>> Miguel
>>
>>
>
>
>

Reply via email to