You are looking for a delegate method from an NSSaveOpenPanel delegate
-(BOOL)panel:(id)sender shouldShowFilename:(NSString *)filename { NSString* ext = [filename pathExtension]; if (ext == @"" || ext == @"/" || ext == nil || ext == NULL || [ext length] < 1) { return TRUE; } NSLog(@"Ext: '%@'", ext); NSEnumerator* tagEnumerator = [[NSArray arrayWithObjects:@"png", @"tiff", @"jpg", @"gif", @"jpeg", nil] objectEnumerator]; NSString* allowedExt; while ((allowedExt = [tagEnumerator nextObject])) { if ([ext caseInsensitiveCompare:allowedExt] == NSOrderedSame) { return TRUE; } } return FALSE; }
Then set the delegate to the "self" panel or wherever you define this method above.
smdvlpr
source share