如何自定义拖放NSTableView的样式?

时间:2013-06-14 02:22:10

标签: cocoa

我对基于视图的NSTableview的拖放有一些疑问。

enter image description here enter image description here

  1. 如何更改拖放突出显示颜色?
  2. 如何更改拖放矩形的形状(宽度和高度)?
  3. 提前致谢

1 个答案:

答案 0 :(得分:6)

您应该可以在NSTableRowView子类中执行以下操作:

- (id)initWithFrame:(NSRect)frame {
    self = [super initWithFrame:frame];
    if (!self)
        return nil;
    // etc...

    [self setDraggingDestinationFeedbackStyle:NSTableViewDraggingDestinationFeedbackStyleNone];

    return self;
}

- (void)drawDraggingDestinationFeedbackInRect:(NSRect)dirtyRect {
    NSRect drawRect = [self bounds];
    // Tweaking the size of the drawing rectangle...
    aRowRect.size.height--;
    aRowRect.size.width-=2;
    aRowRect.origin.x++;

    NSBezierPath *backgroundPath = [NSBezierPath bezierPathWithRect:drawRect];
    [[NSColor redColor] set];
    [backgroundPath fill];
    [[NSColor greenColor] set];
    [backgroundPath stroke];
}

当然,如果您没有构建以圣诞为主题的应用程序,您将需要更改这些颜色。