当前位置: 主页 > 操作系统 > MacOS > MAC OS X Cocoa NSToolbar运用

MAC OS X Cocoa NSToolbar运用

时间:2009-9-18来源:互联网 点击:
//向NSToolbar控件添加自定义的NSToolbarItem项  
- (NSToolbarItem *) toolbar: (NSToolbar *)toolbar itemForItemIdentifier:  
(NSString *) itemIdent willBeInsertedIntoToolbar:(BOOL) willBeInserted {  
// Required delegate method Given an item identifier, self method  
returns an item  
// The toolbar will use self method to obtain toolbar items that can  
be displayed in the customization sheet, or in the toolbar itself  
NSToolbarItem *toolbarItem = [[[NSToolbarItem alloc]  
initWithItemIdentifier: itemIdent] autorelease];  

if ([itemIdent isEqual: SquareDotViewItemIdentifier]) {  
SquareDotView *dv = [[SquareDotView alloc] initWithFrame:  
NSMakeRect(0,0,100,32)];  

[toolbarItem setView: dv];  

// set a reasonable minimum size  
[toolbarItem setMinSize: NSMakeSize(100,32)];  
// set a maximum size that allows us to stretch.  
[toolbarItem setMaxSize: NSMakeSize(300,32)];  

[toolbarItem setLabel: @"Dot View"];  
[toolbarItem setPaletteLabel: @"A Dot View"];  
[toolbarItem setToolTip: @"This is a dot view"];  
}  
.....  
}  

//返回单击后能被选中且为高亮显示的NSToolbarItem的集合。  
- (NSArray *)toolbarSelectableItemIdentifiers:(NSToolbar *)toolbar  
{// return an array of all the items that can be highlight display after selected  
return [NSArray arrayWithObjects:  
NSColorToolbarItemIdentifier,  
NSFontToolbarItemIdentifier,nil];  
}  

//返回程序加载后的默认的NSToolbarItem的集合。  
- (NSArray *)toolbarDefaultItemIdentifiers:(NSToolbar *)toolbar  
{ // return an array of the items found in the default toolbar  
return [NSArray arrayWithObjects:  
NSToolbarSeparatorItemIdentifier,  
NSFontToolbarItemIdentifier,  
NSToolbarCustomizeToolbarItemIdentifier,  
nil];  
}  


//以下是作为NSToolbarItem出现的自定义类  
The "SquareDotView" class:  


@interface SquareDotView : NSView {  
@private  
float sdSide;  
NSPoint sdLocation;  
}  
@end  

@implementation SquareDotView  

#define START_SIDE 10  
#define START_LOCATION NSMakePoint(10,10)  

- (id)initWithFrame:(NSRect)frame {  
self = [super initWithFrame:frame];  
if (self) {  
sdSide = START_SIDE;  
sdLocation = START_LOCATION;  
}  
return self;  
}  

- (void)mouseDown:(NSEvent *)theEvent {  
sdLocation = [self convertPoint: [theEvent locationInWindow]  
fromView: nil];  
[self setNeedsDisplay: YES];  
}  

- (void)drawRect:(NSRect)rect {  
[[NSColor redColor] set];  
[[NSBezierPath bezierPathWithRect: NSMakeRect(sdLocation.x,  
sdLocation.y, sdSide, sdSide)] fill];  

[[NSColor blackColor] set];  
[[NSBezierPath bezierPathWithRect: [self bounds]] stroke];  
}  

- (id)initWithCoder:(NSCoder *)coder {  
self = [super initWithCoder: coder];  
if (self) {  
[coder decodeValuesOfObjCTypes: "fff", &sdSide, &sdLocation.x,  
&sdLocation.y];  
}  
return self;  
}  

- (void)encodeWithCoder:(NSCoder *)coder {  
[super encodeWithCoder: coder];  
if (self) {  
[coder encodeValuesOfObjCTypes: "fff", &sdSide, &sdLocation.x,  
&sdLocation.y];  
}  
}  

@end  
站长资讯网
. TAG: COCOA MAC NSTOOLBAR
推荐内容最近更新人气排行
关于我们 | 友情链接 | 网址推荐 | 常用资讯 | 网站地图 | RSS | 留言