Allow default NSToolbarItems to be subclassed

This commit is contained in:
Robert Grant 2011-05-25 12:20:25 -04:00
parent c8a3699c1a
commit d4b01357f2
2 changed files with 16 additions and 1 deletions

View File

@ -84,6 +84,12 @@ APPKIT_EXPORT NSString * const NSToolbarDidRemoveItemNotification;
@end
@interface NSToolbar (NSToolbarCustomization)
- (Class)toolbarItemClass;
@end
@interface NSObject (NSToolbar_delegate)
-(NSToolbarItem *)toolbar:(NSToolbar *)toolbar itemForItemIdentifier:(NSString *)identifier willBeInsertedIntoToolbar:(BOOL)flag;

View File

@ -232,7 +232,7 @@ static BOOL isStandardItemIdentifier(NSString *identifier){
BOOL standardItem=isStandardItemIdentifier(identifier);
if(_delegate==nil || standardItem)
item=[[[NSToolbarItem alloc] initWithItemIdentifier:identifier] autorelease];
item=[[[[self toolbarItemClass] alloc] initWithItemIdentifier:identifier] autorelease];
else {
item=[_delegate toolbar:self itemForItemIdentifier:identifier willBeInsertedIntoToolbar:intoToolbar];
}
@ -549,3 +549,12 @@ static BOOL isStandardItemIdentifier(NSString *identifier){
@end
@implementation NSToolbar (NSToolbarCustomization)
- (Class)toolbarItemClass
{
return [NSToolbarItem class];
}
@end