public void Execute(object parameter, NSObject source) { var responder = ResponderForSelector(executeSelector); if (responder == null) { return; } if (selectorSupportsParameter) { var parameterProxy = ParameterProxy.Create(parameter); try { objc_msgSend_void_IntPtr_IntPtr( responder.Handle, executeSelector.Handle, source == null ? IntPtr.Zero : source.Handle, parameterProxy == null ? IntPtr.Zero : parameterProxy.Handle); return; } finally { parameterProxy?.Dispose(); } } objc_msgSend_void_IntPtr( responder.Handle, executeSelector.Handle, source == null ? IntPtr.Zero : source.Handle); }
public bool CanExecute(object parameter, NSObject source) { if (canExecuteSelector != null) { var responder = ResponderForSelector(canExecuteSelector); if (responder != null) { var parameterProxy = ParameterProxy.Create(parameter); try { return(objc_msgSend_bool_IntPtr_IntPtr( responder.Handle, executeSelector.Handle, source == null ? IntPtr.Zero : source.Handle, parameterProxy == null ? IntPtr.Zero : parameterProxy.Handle)); } finally { parameterProxy?.Dispose(); } } } return(ResponderForSelector(executeSelector) != null); }