FROM : Charilaos Skiadas
DATE : Tue Apr 12 04:13:06 2005
Ken,
Where from are the cameraNotifications posted? The method handling them
will be running in that same thread that they were posted on,
regardless of in which thread you registered for the notification, so
the downloader methods dealing with the notifications might actually
not be running in the main thread. In that case, your downloader should
be using performSelectorOnMainThread: for the creation of the window
and bringing it to front, to make sure these operations take place in
the main thread. In any case it's a good idea to give it a try this
way, and ensure that all the UI stuff happens in the main thread.
This might talk a bit more about the issue:
http://cocoa.mamasam.com/MACOSXDEV/2004/02/2/85391.php
HTH
On Apr 11, 2005, at 8:51 PM, Ken Tozier wrote:
> Sorry to keep beating this issue, but there is something fundamentally
> wrong somewhere in the following six steps and I'm just not
> experienced enough with Cocoa GUI stuff to see it. To me, the
> algorithm looks fine, but there is some subtle thing that Cocoa
> doesn't like.
>
> The problem is that the window generated in step 6.A and displayed in
> 6.B is never frontmost and can't even be forced to front by clicking
> on it. The only way to bring it to front is to put the window load
> code inside a thread (which I'm told is bad for GUI stuff) Even when
> it's placed in a thread, it doesn't become frontmost without manually
> clicking on it.
>
> Anyone see the error?
>
> Thanks
>
> Ken
>
> Sequence of events:
> --------------------------------
> 1. Application opens "main" nib
>
> 2. "AppController" instance inside "main" nib initializes it's
> "downloader" instance
>
> - (id) init
> {
> self = [super init];
> if (self)
> {
> downloader = [[ICADownloader alloc] init];
> }
>
> return self;
> }
>
> 3. Downloader instance registers for camera connect events in it's
> "init" method
>
>
> - (id) init
> {
> self = [super init];
> if (self)
> {
> [self registerForCameraConnectNotifications];
> }
>
> return self;
> }
>
>
> 4. Time passes
>
> 5. User plugs in a camera
>
> 6. Downloader receives camera connect notification and performs
> following actions:
>
> A. Creates a new window by loading the "DownloadWindow" nib file
> using NSWindowController with an owner of "self".
> B. Displays the window.
> C. Downloads photos to a specified directory.
> D. Closes window.
>
> 7. Done/Waits for another camera connect event.
>
>
> Hierarchically, the location of the window create code is
>
> App
> {
> Main Nib
> {
> AppController
> {
> downloader
> {
> handleCameraConnect <- (callback method)
> {
> NSWindowController *wind
> }
> }
> }
> }
> }
>
> _______________________________________________
> Do not post admin requests to the list. They will be ignored.
> Cocoa-dev mailing list (<email_removed>)
> Help/Unsubscribe/Update your Subscription:
> http://lists.apple.com/mailman/options/cocoa-dev/
> <email_removed>
>
> This email sent to <email_removed>
>
>
Haris
DATE : Tue Apr 12 04:13:06 2005
Ken,
Where from are the cameraNotifications posted? The method handling them
will be running in that same thread that they were posted on,
regardless of in which thread you registered for the notification, so
the downloader methods dealing with the notifications might actually
not be running in the main thread. In that case, your downloader should
be using performSelectorOnMainThread: for the creation of the window
and bringing it to front, to make sure these operations take place in
the main thread. In any case it's a good idea to give it a try this
way, and ensure that all the UI stuff happens in the main thread.
This might talk a bit more about the issue:
http://cocoa.mamasam.com/MACOSXDEV/2004/02/2/85391.php
HTH
On Apr 11, 2005, at 8:51 PM, Ken Tozier wrote:
> Sorry to keep beating this issue, but there is something fundamentally
> wrong somewhere in the following six steps and I'm just not
> experienced enough with Cocoa GUI stuff to see it. To me, the
> algorithm looks fine, but there is some subtle thing that Cocoa
> doesn't like.
>
> The problem is that the window generated in step 6.A and displayed in
> 6.B is never frontmost and can't even be forced to front by clicking
> on it. The only way to bring it to front is to put the window load
> code inside a thread (which I'm told is bad for GUI stuff) Even when
> it's placed in a thread, it doesn't become frontmost without manually
> clicking on it.
>
> Anyone see the error?
>
> Thanks
>
> Ken
>
> Sequence of events:
> --------------------------------
> 1. Application opens "main" nib
>
> 2. "AppController" instance inside "main" nib initializes it's
> "downloader" instance
>
> - (id) init
> {
> self = [super init];
> if (self)
> {
> downloader = [[ICADownloader alloc] init];
> }
>
> return self;
> }
>
> 3. Downloader instance registers for camera connect events in it's
> "init" method
>
>
> - (id) init
> {
> self = [super init];
> if (self)
> {
> [self registerForCameraConnectNotifications];
> }
>
> return self;
> }
>
>
> 4. Time passes
>
> 5. User plugs in a camera
>
> 6. Downloader receives camera connect notification and performs
> following actions:
>
> A. Creates a new window by loading the "DownloadWindow" nib file
> using NSWindowController with an owner of "self".
> B. Displays the window.
> C. Downloads photos to a specified directory.
> D. Closes window.
>
> 7. Done/Waits for another camera connect event.
>
>
> Hierarchically, the location of the window create code is
>
> App
> {
> Main Nib
> {
> AppController
> {
> downloader
> {
> handleCameraConnect <- (callback method)
> {
> NSWindowController *wind
> }
> }
> }
> }
> }
>
> _______________________________________________
> Do not post admin requests to the list. They will be ignored.
> Cocoa-dev mailing list (<email_removed>)
> Help/Unsubscribe/Update your Subscription:
> http://lists.apple.com/mailman/options/cocoa-dev/
> <email_removed>
>
> This email sent to <email_removed>
>
>
Haris
| Related mails | Author | Date |
|---|---|---|
| Ken Tozier | Apr 11, 17:54 | |
| Lorenzo | Apr 11, 19:03 | |
| Ken Tozier | Apr 11, 20:31 | |
| j o a r | Apr 11, 20:59 | |
| Ken Tozier | Apr 11, 21:59 | |
| Ken Tozier | Apr 12, 03:51 | |
| Charilaos Skiadas | Apr 12, 04:13 | |
| Ken Tozier | Apr 12, 06:32 | |
| Charilaos Skiadas | Apr 12, 07:06 | |
| Ken Tozier | Apr 12, 07:35 | |
| Hamish Allan | Apr 12, 13:52 |






Cocoa mail archive

