public static void Subscribe(NSObject obj, string selector, IntPtrHandler2 callback) { Methods methods = GetMethods(obj, selector); methods.ActionIntPtrIntPtr = (IntPtrHandler2)Delegate.Combine(methods.ActionIntPtrIntPtr, callback); if (!_delegates.ContainsKey(selector)) { IntPtrHandler4 intPtrHandler = OnCallbackIntPtrIntPtr; if (!ObjC.AddMethod(obj.ClassHandle, Selector.GetHandle(selector), intPtrHandler, "v@:@@")) { throw new InvalidOperationException("AddMethod failed for selector " + selector); } _delegates[selector] = intPtrHandler; } }
public static void Subscribe(NSObject obj, string selector, EventHandler <ButtonEventArgs> callback) { Methods methods = GetMethods(obj, selector); methods.EventHandlerInt = (EventHandler <ButtonEventArgs>)Delegate.Combine(methods.EventHandlerInt, callback); if (!_delegates.ContainsKey(selector)) { Action <IntPtr, IntPtr, IntPtr, int> action = OnCallbackInt; if (!ObjC.AddMethod(obj.ClassHandle, Selector.GetHandle(selector), action, "v@:@l")) { throw new InvalidOperationException("AddMethod failed for selector " + selector); } _delegates[selector] = action; } }
public static void Subscribe(NSObject obj, string selector, EventHandler <ButtonEventArgs> callback) { var methods = GetMethods(obj, selector); methods.EventHandlerInt += callback; if (!_delegates.ContainsKey(selector)) { Action <IntPtr, IntPtr, IntPtr, int> del = OnCallbackInt; if (!ObjC.AddMethod(obj.ClassHandle, Selector.GetHandle(selector), del, "v@:@l")) { throw new InvalidOperationException("AddMethod failed for selector " + selector); } else { _delegates[selector] = del; } } }
public static void Subscribe(NSObject obj, string selector, IntPtrHandler callback) { var methods = GetMethods(obj, selector); methods.ActionIntPtr += callback; if (!_delegates.ContainsKey(selector)) { IntPtrHandler3 del = OnCallback; if (!ObjC.AddMethod(obj.ClassHandle, Selector.GetHandle(selector), del, "v@:@")) { throw new InvalidOperationException("AddMethod failed for selector " + selector); } else { _delegates[selector] = del; } } }