public static void Subscribe(NSObject obj, string selector, EventHandler callback) { var methods = GetMethods(obj, selector); methods.EventHandler += 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; } } }
public static void Unsubscribe(NSObject obj, string selector, IntPtrHandler3 callback) { Methods methods = GetMethods(obj, selector); methods.ActionIntPtrIntPtrIntPtr = (IntPtrHandler3)Delegate.Remove(methods.ActionIntPtrIntPtrIntPtr, callback); }
public static void Unsubscribe(NSObject obj, string selector, IntPtrHandler3 callback) { var methods = GetMethods(obj, selector); methods.ActionIntPtrIntPtrIntPtr -= callback; }
public static void Subscribe(NSObject obj, string selector, IntPtrHandler3 callback) { var methods = GetMethods(obj, selector); methods.ActionIntPtrIntPtrIntPtr += callback; if (!_delegates.ContainsKey(selector)) { IntPtrHandler5 del = OnCallbackIntPtrIntPtrIntPtr; if (!ObjC.AddMethod(obj.ClassHandle, Selector.GetHandle(selector), del, "v@:@@@")) { throw new InvalidOperationException("AddMethod failed for selector " + selector); } else { _delegates[selector] = del; } } }