Skip navigation.
 
mlForwarding messages from an application delegate
FROM : Matthew Gertner
DATE : Fri May 02 16:35:32 2008

Hi,

I am implementing an application delegate for a framework (Mozilla)
that already registers its own delegate internally. Ideally I would
like to be able to handle specific delegate messages in my class (in
this case adding items to the dock tile menu) and forward all other
invocations to the old delegate. So before I call [[NSApplication
sharedApplication] setDelegate] for my delegate, I retrieve the
existing delegate and save it in a member variable (mOldDelegate). I
thought that I could get invocations to forward automatically like
this:

- (void)forwardInvocation:(NSInvocation *)anInvocation
{
if ([mOldDelegate respondsToSelector:[anInvocation selector]])
  [anInvocation invokeWithTarget:mOldDelegate];
else
  [super forwardInvocation:anInvocation];
}

- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
{
if ([mOldDelegate respondsToSelector:aSelector])
  return [mOldDelegate methodSignatureForSelector:aSelector];
else
  return [super methodSignatureForSelector: aSelector];
}

For some reason neither methodSignatureForSelector nor
forwardInvocation is ever called. Perhaps this has something to do
with the way messages are sent to the delegate by the application. As
a result, my delegate never forwards to the old delegate. Any guidance
would be appreciated.

Matt

Related mailsAuthorDate
mlForwarding messages from an application delegate Matthew Gertner May 2, 16:35
mlRe: Forwarding messages from an application delegate Graham Cox May 2, 16:44
mlRe: Forwarding messages from an application delegate Andy Lee May 2, 16:53
mlRe: Forwarding messages from an application delegate Andy Lee May 2, 16:55
mlRe: Forwarding messages from an application delegate Matthew Gertner May 2, 16:55
mlRe: Forwarding messages from an application delegate Matthew Gertner May 2, 16:56
mlRe: Forwarding messages from an application delegate Bill Cheeseman May 2, 17:04
mlRe: Forwarding messages from an application delegate Graham Cox May 2, 17:18