<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; color: rgb(0, 0, 0); font-size: 14px; font-family: Calibri, sans-serif; "><div>Eric,</div><div><br></div><div>&nbsp;&nbsp;I took a look at this again, and we did definitely have a bug in base.RespondsToSelector () whch is now fixed, thanks for the heads up</div><div><br></div><div>-g</div><div><br></div><div><br></div><span id="OLK_SRC_BODY_SECTION"><div style="font-family:Calibri; font-size:11pt; text-align:left; color:black; BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; PADDING-LEFT: 0in; PADDING-RIGHT: 0in; BORDER-TOP: #b5c4df 1pt solid; BORDER-RIGHT: medium none; PADDING-TOP: 3pt"><span style="font-weight:bold">From: </span> Eric Slosser &lt;<a href="mailto:eric.slosser@v-fx.com">eric.slosser@v-fx.com</a>&gt;<br><span style="font-weight:bold">Date: </span> Wed, 27 Oct 2010 16:35:38 -0400<br><span style="font-weight:bold">To: </span> &lt;<a href="mailto:gnorton.novell@gmail.com">gnorton.novell@gmail.com</a>&gt;<br><span style="font-weight:bold">Cc: </span> mono-osx &lt;<a href="mailto:mono-osx@lists.ximian.com">mono-osx@lists.ximian.com</a>&gt;, Miguel de Icaza &lt;<a href="mailto:Miguel@novell.com">Miguel@novell.com</a>&gt;<br><span style="font-weight:bold">Subject: </span> Re: [Mono-osx] how override an Objective C method?<br></div><div><br></div><div><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div><div>On Oct 27, 2010, at 2:23 PM, Geoff Norton wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; color: rgb(0, 0, 0); font-size: 14px; font-family: Calibri, sans-serif; "><div>As miguel said, you're wanting to bind a static method so you need something like this:</div></div></blockquote><div><blockquote type="cite"><div style="font-family: Calibri, sans-serif; font-size: 14px; ">[Export ("respondsToSelector:")]</div><div style="font-family: Calibri, sans-serif; font-size: 14px; ">public static bool RespondsToSelector (Selector sel)</div></blockquote><div><div style="font-family: Calibri, sans-serif; font-size: 14px; "><br></div></div></div>Actually, Miguel was pointing out the opposite, that I had written "+", when I meant "-".</div><div><br></div><div>Having gone back and re-read the Apple documentation on -[NSObject respondsToSelector:], I see I was wrong to try to call the base implementation of "respondsToSelector", I should have been calling +[NSObject instancesRespondToSelector:].</div><div><br></div><div>By combining your code with the Apple info I got this which behaves as I wanted.</div><div><br></div><div><div><span class="Apple-style-span" style="font-size: 13px; font-family: 'Courier New'; ">public override bool RespondsToSelector (Selector sel)</span></div><div><font class="Apple-style-span" face="Courier New" size="3"><span class="Apple-style-span" style="font-size: 13px;">{</span></font></div><div><font class="Apple-style-span" face="Courier New" size="3"><span class="Apple-style-span" style="font-size: 13px;"><span class="Apple-style-span" style="white-space: pre;">&nbsp;  </span>bool result&nbsp;</span></font><span class="Apple-style-span" style="font-size: 13px; font-family: 'Courier New'; ">= Messaging.bool_objc_msgSend_intptr (&nbsp;</span><span class="Apple-style-span" style="font-size: 13px; font-family: 'Courier New'; ">Class.GetHandle ("WhateverYourSuperClassIs"), &nbsp;S</span><span class="Apple-style-span" style="font-size: 13px; font-family: 'Courier New'; ">elector.GetHandle ("instancesRespondToSelector:"), sel.Handle);</span></div><div><font class="Apple-style-span" face="Courier New" size="3"><span class="Apple-style-span" style="font-size: 13px;">&nbsp;&nbsp; Console.WriteLine("responds to: {0} {1}", result ? "yes " : "no &nbsp;", <a href="http://sel.Name">sel.Name</a>);</span></font></div><div><font class="Apple-style-span" face="Courier New" size="3"><span class="Apple-style-span" style="font-size: 13px;">&nbsp;&nbsp; return result;</span></font></div><div><font class="Apple-style-span" face="Courier New" size="3"><span class="Apple-style-span" style="font-size: 13px;">}</span></font></div><div><br></div></div><div><blockquote type="cite"><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; color: rgb(0, 0, 0); font-size: 14px; font-family: Calibri, sans-serif; "><span id="OLK_SRC_BODY_SECTION"><div><div class="gmail_quote"><div>The bigger question is why do you want to override this method? &nbsp;It's very odd that you would want to do this, since the NSObject instance and objc-runtime should handle this for you.</div></div></div></span></div></blockquote></div><br><div>I'm not going to change the return value, I just want to report it so I can see what selectors my object is being asked about. &nbsp;It's a generally useful technique, because you can see what selectors Cocoa is wondering about, and not spend time implementing the ones it doesn't.</div><div><br></div><div>My specific use in this case was to figure out why a certain delegate method that I had<b> </b>implemented wasn't getting called.</div></div></div></span></body></html>