软件工程

本类阅读TOP10

·PHP4 + MYSQL + APACHE 在 WIN 系统下的安装、配置
·Linux 入门常用命令(1)
·Linux 入门常用命令(2)
·使用 DCPROMO/FORCEREMOVAL 命令强制将 Active Directory 域控制器降级
·DirectShow学习(八): CBaseRender类及相应Pin类的源代码分析
·基于ICE方式SIP信令穿透Symmetric NAT技术研究
·Windows 2003网络负载均衡的实现
·一网打尽Win十四种系统故障解决方法
·数百种 Windows 软件的免费替代品列表
·收藏---行百里半九十

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
MAC OS X Cocoa NSToolbar 的使用

作者:未知 来源:月光软件站 加入时间:2005-5-13 月光软件站

//向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




相关文章

相关软件