• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: Windows and Default Notification Center
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Windows and Default Notification Center


  • Subject: Re: Windows and Default Notification Center
  • From: Fritz Anderson <email@hidden>
  • Date: Fri, 23 Jul 2004 14:01:40 -0500

First, are you sure your window controller is in the responder chain? Particularly, is it its window's delegate?

Second, NSApplication doesn't respond to respondsToSelector: any differently than any other class. If NSApplication (or an ancestor class) doesn't implement the message, it returns NO. This means that it will return NO virtually always in the code sample you provide, even for action messages that the responder chain really does handle.

Third, the test you mean to make is whether targetForAction: returns nil. But the test is unnecessary, as there's no harm (other than a beep) in sending an action that the responder chain doesn't handle.

Fourth, if you want to send an action message up the responder chain starting at the first responder, the message to use is
[NSApp sendAction: @selector(processCommandTest:) to: nil from: arg];
See also fifth, sixth, and seventh.

Fifth, note the use of the global constant NSApp instead of [NSApplication sharedApplication]. It's the same thing, only less effort to type.

Sixth, a SEL is not an NSString. (Or if it is, it's only a coincidence of implementation.) Use the @selector() operator to generate SELs.

Seventh, the name of a method that takes one argument ends with a colon. The colon is not merely syntactical; it is part of the name.
processCommandTest
and
processCommandTest:
identify two different methods.

-- F

On 23 Jul 2004, at 11:35 AM, Bruce Truax wrote:

I agree that the responder chain is the correct way to do this, but I am
having trouble making it work. At the end of my windowDidLoad function in
my NSWindowController I have the following command:

[[self window] makeFirstResponder:self];

And the window controller object contains the processCommandTest function.
In my dialog handler I pass the message to the first responder as follows:

NSApplication *thisApp = [NSApplication sharedApplication];
if ([thisApp respondsToSelector:(SEL)@"processCommandTest"]){

[thisApp tryToPerform:(SEL)@"processCommandTest" with:command];
}

But the respondsToSelector method always returns NO.
_______________________________________________
cocoa-dev mailing list | email@hidden
Help/Unsubscribe/Archives: http://www.lists.apple.com/mailman/listinfo/cocoa-dev
Do not post admin requests to the list. They will be ignored.


  • Follow-Ups:
    • SOLVED Re: Windows and Default Notification Center
      • From: Bruce Truax <email@hidden>
References: 
 >Re: Windows and Default Notification Center (From: Bruce Truax <email@hidden>)

  • Prev by Date: Re: Forwarding to Super
  • Next by Date: Re: NSTimer firing issue
  • Previous by thread: Re: Windows and Default Notification Center
  • Next by thread: SOLVED Re: Windows and Default Notification Center
  • Index(es):
    • Date
    • Thread