Re: Interface Builder Plugin Dependency
Re: Interface Builder Plugin Dependency
- Subject: Re: Interface Builder Plugin Dependency
- From: Jonathan Hess <email@hidden>
- Date: Thu, 29 Jan 2009 18:01:27 -0800
Hey Bridger -
Does your plug-in and framework really need to create and crop an
image while being unarchived and re-archived by ibtool? Perhaps you
could retool your class so that the work happens lazily, and doesn't
occur durring XIB compilation.
As Joey said, ibtool to runs with no window server connection to
support headless build machines.
Also, if you wouldn't mind, could you file a bug report about the
missing information in the Xcode build log?
Good Luck -
Jon Hess
On Jan 29, 2009, at 4:09 PM, Gary L. Wade wrote:
Looks like your plug-in is being running as a tool without a
connection to
the window server.
On 01/29/2009 3:54 PM, "Bridger Maxwell" <email@hidden> wrote:
It turns out the error is completely different from what I thought
it was
(isn't it always?). It turns out Xcode was omitting part of the
output from
IBTool. When I tried to compile my xib from Terminal, I got this
error:
Description: ibtool encountered an error while loading the ibplugin
from
/Users/bridger/Development/Mercury/MercuryStation/build/Debug/
SCMercury.framew
ork/Versions/A/Resources/SCThemes.ibplugin.
Error: Error Domain=com.apple.InterfaceBuilder Code=-1
UserInfo=0x6e9e90
"Interface Builder could not load the 'Themes' plug-in because an
exception
was raised.
Exception name: NSInternalInconsistencyException
Reason: Error (1002) creating CGSWindow"
I Googled around a bit, and I know it has something to do with
drawing. In
fact, I have narrowed it down to these lines of code:
NSImage * canvas = [[NSImage alloc] initWithSize: canvas_size];
[canvas lockFocus];
...
[canvas unlockFocus];
This is a vital part of my plugin though. I use this in an NSImage
category
which crops an NSImage. Why does lockFocus cause IB compilation
errors, and
can how can I fix it?
Also, here is the NSImage category in its entirety. I actually took
it from
someone else on this list a while back.
- (NSImage *) imageFromRect: (NSRect) rect
{
NSAffineTransform * xform = [NSAffineTransform transform];
// translate reference frame to map rectangle 'rect' into first
quadrant
[xform translateXBy: -rect.origin.x
yBy: -rect.origin.y];
NSSize canvas_size = [xform transformSize: rect.size];
NSImage * canvas = [[NSImage alloc] initWithSize: canvas_size];
[canvas lockFocus];
[xform concat];
// Get NSImageRep of image
NSImageRep * rep = [self bestRepresentationForDevice: nil];
[rep drawAtPoint: NSZeroPoint];
[canvas unlockFocus];
return [canvas autorelease];
return nil;
}
Thank You,
Bridger Maxwell
_______________________________________________
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
_______________________________________________
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