【问题标题】:NSTabView styled like iTunes for YosemiteNSTabView 风格类似于优胜美地的 iTunes
【发布时间】:2015-03-22 00:51:38
【问题描述】:

我正在尝试构建一个 NSTabView,其样式与 iTunes 中的 NSPanel/NSWindow 中的样式相同。编辑曲目时会弹出。

当我添加 NSTabview 时,它会出现一个有色带边框的矩形

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

【问题讨论】:

    标签: macos cocoa osx-yosemite


    【解决方案1】:

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

    【讨论】:

    • 我仍然想要标签,而不是它附带的边框和色调/覆盖。我想我最终会使用 NSSegmentedControl 来创建我自己的版本。
    • 我解释了如何创建这种面板......它很干净而且很容易做到。
    • 你是对的。这行得通。这不是我所希望的,但它似乎是最好的方法。
    【解决方案2】:

    这里有适合任何感兴趣的人的程序化解决方案:

     - (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];
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-21
      • 1970-01-01
      • 2015-02-20
      • 2014-12-13
      • 1970-01-01
      相关资源
      最近更新 更多