NSTabView的风格就像iTunes for Yosemite

时间:2015-03-20 20:49:37

标签: macos cocoa osx-yosemite

我正在尝试使用与iTunes中的NSPanel / NSWindow相同的方式构建NSTabView样式。这会在您编辑曲目时弹出。

enter image description here

当我添加NSTabview时,它会显示有色和带边框的矩形

enter image description here

我已经尝试了一切我能想到的删除这个矩形,或者将其设置为透明。有人找到了解决方案吗?任何正确方向的指针都会非常有用。

2 个答案:

答案 0 :(得分:3)

您可以创建一个表NSTabView,然后添加NSSegmentedControl以选择活动选项卡。

enter image description here

答案 1 :(得分:1)

这是一个针对任何感兴趣的人的程序化解决方案:

 - (void)createViews {
    // tabview
    self.tabView = [NSTabView new];
    self.tabView.tabViewType = NSNoTabsNoBorder;
    self.tabView.controlSize = NSRegularControlSize;

    // tabview items
    self.detailsTabItemView = [BPBaseView new];
    NSTabViewItem *detailItem = [NSTabViewItem new];
    detailItem.view = self.detailsTabItemView;

    self.artworkTabItemView = [BPBaseView new];
    self.artworkTabItemView.backgroundColor = [NSColor colorWithHex:BPCharcoalLight];
    NSTabViewItem *artworkItem = [NSTabViewItem new];
    artworkItem.view = self.artworkTabItemView;

    [self.tabView addTabViewItem:detailItem];
    [self.tabView addTabViewItem:artworkItem];

    // segment control
    self.segmentControl = [NSSegmentedControl new];
    self.segmentControl.segmentCount = 2;
    [self.segmentControl setLabel:@"Details" forSegment:0];
    [self.segmentControl setLabel:@"Artwork" forSegment:1];
    self.segmentControl.action = @selector(segmentControlClicked:);
    self.segmentControl.selectedSegment = 0;
    [self segmentControlClicked:self.segmentControl]; // force first view to show

    // add views
    [self.bottomContainerView addSubview:self.segmentControl];
    [self.bottomContainerView addSubview:self.tabView];
}

- (void)segmentControlClicked:(id)segmentControl{
    NSInteger index = [segmentControl selectedSegment];
    [self.tabView selectTabViewItemAtIndex:index];
}