新客网WWW.XKER.COM:致力做中国最专业的网络学院!
学院: 操作系统 - 网络应用 - 服务器 - 网络安全 - 工具软件 - 办公软件 - Web开发 - 数据库 - 网页设计 - 图形图像 - 媒体动画 - 硬件学堂 - 存储频道 - QQ专区
您的位置:首页 > 网络学院 > 操作系统 > Unix系统 > MacOsX教程 > 正文:MAC OS X Cocoa NSToolbar 的使用

MAC OS X Cocoa NSToolbar 的使用

新客网 XKER.COM 2007-12-27 来源:新客网Unix系统 佚名 收藏本文
  【新客网MacOsX教程】//向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

收藏】 【评论】 【推荐】 【投稿】 【打印】 【关闭
发表评论
要记得去论坛讨论,点击注册新会员匿名评论
评论内容:不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
阅读排行
随机推荐
实用信息推荐