Re: Adding text to NSImage using lockFocus/unlockFocus not working
Re: Adding text to NSImage using lockFocus/unlockFocus not working
- Subject: Re: Adding text to NSImage using lockFocus/unlockFocus not working
- From: email@hidden
- Date: Wed, 25 Feb 2009 10:34:02 +0530 (IST)
- Importance: Normal
Hi Graham,
I tried what you have suggested still only images are shown with titles.
May be there is something wrong with my other code segments. Please have a
look at my code if you can spot anything wrong. I suspect
imageBrowser:itemAtIndex: should have different implementation.
My AppController looks like this:
/******************************************************/
#import "AppController.h"
@implementation AppController
- (void)awakeFromNib
{
data = [[NSMutableArray alloc] init]; //array of IKBBrowserItem objects
[browserView setContentResizingMask:NSViewHeightSizable];
[browserView setDelegate:self];
[browserView setDataSource:self];
[self setDataWithPath:@"/Users/ashisht/Desktop/pics"];
[browserView reloadData];
}
- (NSUInteger) numberOfItemsInImageBrowser:(IKImageBrowserView *) aBrowser
{
return [data count];
}
- (id) imageBrowser:(IKImageBrowserView *) aBrowser
itemAtIndex:(NSUInteger)index
{
return [data objectAtIndex:index];
}
/******************************************************/
Where as my datasource items look like this:
/******************************************************/
@implementation IKBBrowserItem
@synthesize image;
@synthesize mPath;
- (id)initWithImage:(NSImage*)anImage imageID:(NSString*)anPath
{
if (self = [super init]) {
image = [anImage copy];
mPath = [anPath copy];
}
return self;
}
- (void)dealloc
{
[image release];
[mPath release];
[super dealloc];
}
#pragma mark -
#pragma mark Required Methods IKImageBrowserItem Informal Protocol
- (NSString *) imageUID
{
return mPath;
}
- (NSString *) imageRepresentationType
{
return IKImageBrowserPathRepresentationType
/*IKImageBrowserNSImageRepresentationType*/;
}
- (id) imageRepresentation
{
return mPath;
}
#pragma mark -
#pragma mark Optional Methods IKImageBrowserItem Informal Protocol
- (NSString*) imageTitle
{
return [[mPath lastPathComponent] stringByDeletingPathExtension];
}
- (NSString*) imageSubtitle
{
NSDictionary* attribs = [image imageAttributes];
int w, h;
w = [[attribs objectForKey:@"PixelWidth"] intValue];
h = [[attribs objectForKey:@"PixelHeight"] intValue];
return [NSString stringWithFormat:@"%d x %d", w, h];
}
/******************************************************/
>
> On 24/02/2009, at 9:50 PM, Ashish Tiwari wrote:
>
>> I am trying to get finder icon view like behavior in my
>> application. Using
>> IKImageBrowserView I am able to show icons for contents of a
>> directory but I
>> also need file/directory name below those icons. For this I am
>> trying to
>> insert NString into NSImage but text is now showing up in
>> IKImageBrowserView.
>
>
> IKImageBrowserVIew has a much better way to handle this specific
> labelling requirement.
>
> The objects it stores should implement the informal protocol for -
> imageTitle and -imageSubtitle, and the view will draw those strings
> below the icons for you.
>
> Here are the methods I have in a simple custom object I use - I think
> I originally got this from one of Apple's samples though I'm afraid I
> forgot exactly which one. It simply provides the browser with the path
> to each image.
>
> --Graham
>
>
>
> //
> -------------------------------------------------------------------------
> // imageRepresentationType:
> //
> // Set up the image browser to use a path representation.
> //
> -------------------------------------------------------------------------
> - (NSString*) imageRepresentationType
> {
> return IKImageBrowserPathRepresentationType;
> }
>
> //
> -------------------------------------------------------------------------
> // imageRepresentation:
> //
> // Give the path representation to the image browser.
> //
> -------------------------------------------------------------------------
> - (id) imageRepresentation
> {
> return mPath;
> }
>
> //
> -------------------------------------------------------------------------
> // imageUID:
> //
> // Use the absolute file path as the identifier.
> //
> -------------------------------------------------------------------------
> - (NSString*) imageUID
> {
> return mPath;
> }
>
>
> - (NSString*) imageTitle
> {
> return [[mPath lastPathComponent] stringByDeletingPathExtension];
> }
>
>
> - (NSString*) imageSubtitle
> {
> NSDictionary* attribs = [self imageAttributes];
>
> int w, h;
>
> w = [[attribs objectForKey:@"PixelWidth"] intValue];
> h = [[attribs objectForKey:@"PixelHeight"] intValue];
>
> return [NSString stringWithFormat:@"%d x %d", w, h];
> }
>
>
_______________________________________________
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