【发布时间】:2015-03-22 00:51:38
【问题描述】:
我正在尝试构建一个 NSTabView,其样式与 iTunes 中的 NSPanel/NSWindow 中的样式相同。编辑曲目时会弹出。
当我添加 NSTabview 时,它会出现一个有色带边框的矩形
我已经尝试了我能想到的一切来删除这个矩形,或者将它设置为透明。有没有人找到解决方案?任何指向正确方向的指针都会非常有帮助。
【问题讨论】:
标签: macos cocoa osx-yosemite
我正在尝试构建一个 NSTabView,其样式与 iTunes 中的 NSPanel/NSWindow 中的样式相同。编辑曲目时会弹出。
当我添加 NSTabview 时,它会出现一个有色带边框的矩形
我已经尝试了我能想到的一切来删除这个矩形,或者将它设置为透明。有没有人找到解决方案?任何指向正确方向的指针都会非常有帮助。
【问题讨论】:
标签: macos cocoa osx-yosemite
您可以创建一个表格 NSTabView,然后您可以添加一个 NSSegmentedControl 来选择活动选项卡。
【讨论】:
这里有适合任何感兴趣的人的程序化解决方案:
- (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];
}
【讨论】: