Re: Problems with runModalForWindow, looking for alternatives
Re: Problems with runModalForWindow, looking for alternatives
- Subject: Re: Problems with runModalForWindow, looking for alternatives
- From: Jens Alfke <email@hidden>
- Date: Tue, 01 Nov 2011 09:23:42 -0700
On Nov 1, 2011, at 8:43 AM, Vojtěch Meluzín wrote:
> On the other hand now runModalForWindow increases retainCount! Why is that? It makes no sense to me.
It’s probably being retained and then autoreleased by AppKit. Don’t pay any attention to retainCount, it’s generally not useful for detecting memory issues.
However, note that you called -alloc to create the NSWindow, so by the memory guidelines you are responsible for releasing it when you’re through with it.
> Also the window still appears in background (code below) and cursor cannot be changed.
What app is this in? Is it a Carbon app? I’ve never done Cocoa-in-Carbon embedding but I think there may be some special considerations involved.
> NSUInteger style = NSBorderlessWindowMask;
Borderless windows can’t get keyboard focus by default. If you want that you’ll have to subclass NSWindow and override -canBecomeKey.
Also, running a borderless window as modal is kind of weird and probably contrary to the HI Guidelines. Is there a good reason this needs to not have a title bar?
> NSString *titlens = MStringToNSString(caption);
> [desc->Window setTitle: titlens ];
> [titlens release];
This seems sort of weird — your MStringToNSString doesn’t return an autoreleased NSString? That’s against refcounting conventions and rather error-prone.
>
> [desc->Window setContentView: desc->View];
I don’t see any code to release desc->View. If you’re not already releasing it after the code you showed, this line might be a good place to add the -release call, since the view is now retained by the window.
> // Activate the process...
> ProcessSerialNumber ourPsn = {0, kCurrentProcess};
> //OSStatus status =
> SetFrontProcess(&ourPsn);
This is unnecessary if you’re already calling -activateIgnoringOtherApps:, which does the same thing.
—Jens_______________________________________________
Cocoa-dev mailing list (email@hidden)
Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden