Professional Web Applications Themes

alert sheet after NSOpenPanel sheet - Mac Programming

I'm a Cocoa newbie trying to write a system preference panel. In response to a certain button, I show an NSOpenPanel with beginSheetForDirectory. In the associated didEndSelector method, depending on what the user chose, I may want to show an alert, like so: NSBeginAlertSheet( "Can't use that application", nil, nil, nil, [[self mainView] window], self, selector(sheetDidEnd:returnCode:contextInfo:), nil, nil, "Failed to find creator code or name for that application." ); When this happens, the alert shows up, but the whole System Preferences window closes! If I show the sheet in direct response to a button, it behaves correctly, so I'm guessing ...

  1. #1

    Default alert sheet after NSOpenPanel sheet

    I'm a Cocoa newbie trying to write a system preference panel. In
    response to a certain button, I show an NSOpenPanel with
    beginSheetForDirectory. In the associated didEndSelector method,
    depending on what the user chose, I may want to show an alert, like so:

    NSBeginAlertSheet( "Can't use that application", nil, nil,
    nil,
    [[self mainView] window], self,
    selector(sheetDidEnd:returnCode:contextInfo:), nil, nil,
    "Failed to find creator code or name for that
    application." );

    When this happens, the alert shows up, but the whole System Preferences
    window closes!

    If I show the sheet in direct response to a button, it behaves
    correctly, so I'm guessing the problem has something to do with the
    open panel not being completely finished when I try to show the alert.
    If this were a Carbon program, I'd delay the alert by posting a custom
    Carbon event or one-shot timer. What's the Cocoa way to handle this?
    James W. Walker Guest

  2. #2

    Default Re: alert sheet after NSOpenPanel sheet

    In article <130720031414303151%osxNOSPAMjwwalker.com.invalid >,
    "James W. Walker" <osxNOSPAMjwwalker.com.invalid> wrote:
    > I'm a Cocoa newbie trying to write a system preference panel. In
    > response to a certain button, I show an NSOpenPanel with
    > beginSheetForDirectory. In the associated didEndSelector method,
    > depending on what the user chose, I may want to show an alert, like so:
    >
    > NSBeginAlertSheet( "Can't use that application", nil, nil,
    > nil,
    > [[self mainView] window], self,
    > selector(sheetDidEnd:returnCode:contextInfo:), nil, nil,
    > "Failed to find creator code or name for that
    > application." );
    >
    > When this happens, the alert shows up, but the whole System Preferences
    > window closes!
    >
    > If I show the sheet in direct response to a button, it behaves
    > correctly, so I'm guessing the problem has something to do with the
    > open panel not being completely finished when I try to show the alert.
    > If this were a Carbon program, I'd delay the alert by posting a custom
    > Carbon event or one-shot timer. What's the Cocoa way to handle this?
    If that is in fact the problem, you can do the exact same thing in
    Cocoa. One way is to use NSTimer. Another way is to use NSObject's
    -performSelector:withObject:afterDelay: to handle the scheduling for you.
    Michael Ash Guest

  3. #3

    Default Re: alert sheet after NSOpenPanel sheet

    In article <mail-5DFD7F.16341113072003localhost>, Michael Ash
    <mailmikeash.com> wrote:
    > If that is in fact the problem, you can do the exact same thing in
    > Cocoa. One way is to use NSTimer. Another way is to use NSObject's
    > -performSelector:withObject:afterDelay: to handle the scheduling for you.
    Thanks, I did the latter and it worked.
    James W. Walker Guest

  4. #4

    Default Re: alert sheet after NSOpenPanel sheet

    Michael Ash <mailmikeash.com> wrote in message news:<mail-5DFD7F.16341113072003localhost>...
    > In article <130720031414303151%osxNOSPAMjwwalker.com.invalid >,
    > "James W. Walker" <osxNOSPAMjwwalker.com.invalid> wrote:
    >
    > > I'm a Cocoa newbie trying to write a system preference panel. In
    > > response to a certain button, I show an NSOpenPanel with
    > > beginSheetForDirectory. In the associated didEndSelector method,
    > > depending on what the user chose, I may want to show an alert, like so:
    > >
    > > NSBeginAlertSheet( "Can't use that application", nil, nil,
    > > nil,
    > > [[self mainView] window], self,
    > > selector(sheetDidEnd:returnCode:contextInfo:), nil, nil,
    > > "Failed to find creator code or name for that
    > > application." );
    > >
    > > When this happens, the alert shows up, but the whole System Preferences
    > > window closes!
    > >
    > > If I show the sheet in direct response to a button, it behaves
    > > correctly, so I'm guessing the problem has something to do with the
    > > open panel not being completely finished when I try to show the alert.
    > > If this were a Carbon program, I'd delay the alert by posting a custom
    > > Carbon event or one-shot timer. What's the Cocoa way to handle this?
    >
    > If that is in fact the problem, you can do the exact same thing in
    > Cocoa. One way is to use NSTimer. Another way is to use NSObject's
    > -performSelector:withObject:afterDelay: to handle the scheduling for you.
    Or you could send the open panel an -orderOut: message before you begin a new sheet.

    Michael
    Michael Milvich Guest

Similar Threads

  1. CSS style sheet
    By Unregistered in forum Brainstorming Area
    Replies: 0
    Last Post: December 17th, 07:11 AM
  2. Style Sheet refresh?
    By chenault in forum Macromedia Contribute General Discussion
    Replies: 2
    Last Post: May 13th, 12:07 PM
  3. cheat sheet
    By ptrckacn in forum Macromedia ColdFusion
    Replies: 2
    Last Post: June 16th, 07:56 AM
  4. How to get the name of an Excel sheet?
    By zz3top in forum Coldfusion - Advanced Techniques
    Replies: 1
    Last Post: May 11th, 05:36 AM
  5. Print 8.5 x 11 sheet
    By stubert webforumsuser@macromedia.com in forum Macromedia Director Basics
    Replies: 2
    Last Post: February 13th, 04:23 PM

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139