NSTabView继承于NSView。先来一个NSTabView的效果图,知道这是个啥

在mac OS 的系统偏好设置中,许多地方用到了NSTabView,下面一步步来。
创建TabView
let tabView = NSTabView(frame: view.bounds)
tabView.delegate = self
//tab 所在位置, NSTabView.TabPosition 上top左left下bottom右right
tabView.tabPosition = NSTabView.TabPosition.bottom
tabView.tabViewBorderType = NSTabView.TabViewBorderType.bezel
// tabViewType 可以组合设置 tabPosition 和 tabViewBorderType 两种效果
tabView.tabViewType = NSTabView.TabType.topTabsBezelBorder
view.addSubview(tabView)
创建tabViewItem
//创建一个tab
let vc1 = FirstViewController.init(nibName: "FirstViewController", bundle: nil)
// 通过viewController 初始化一个 tabView item
let item1 = NSTabViewItem(viewController: vc1)
/** or 如下创建
item1 = NSTabViewItem()
item1.viewController = vc1
*/
//tab 内容view
item1.view = vc1.view
//tab 标题
item1.label = "VC1"
// 如果item 没有选中, 鼠标悬停在item 上显示的文字提示
item1.toolTip = "你是谁"
// 设置 tab item 此选项卡视图项的图像(该图像仅可用于某些选项卡视图样式和选项。但是怎么都没看到)
item1.image = NSImage(named: "skin")
tabView.addTabViewItem(item1)
tabView 常用方法
// 选中 tabViewItem
open func selectTabViewItem(_ tabViewItem: NSTabViewItem?)
// 选中 在index 的 tabViewItem
open func selectTabViewItem(at index: Int) // May raise an NSRangeException
// 添加一个 tabViewItem
open func addTabViewItem(_ tabViewItem: NSTabViewItem) // Add tab at the end.
// 定点添加 tabViewItem
open func insertTabViewItem(_ tabViewItem: NSTabViewItem, at index: Int) /
// 删除 tabViewItem, 被操作的item 必须是存在的
open func removeTabViewItem(_ tabViewItem: NSTabViewItem)
tabView 代理方法
// 是否可以点击tabViewItem
func tabView(_ tabView: NSTabView, shouldSelect tabViewItem: NSTabViewItem?) -> Bool {
return true
}
// 即将点击 tabViewItem
func tabView(_ tabView: NSTabView, willSelect tabViewItem: NSTabViewItem?) {
}
// 已经点击 tabViewItem
func tabView(_ tabView: NSTabView, didSelect tabViewItem: NSTabViewItem?) {
}
// tabViewItem 数量发生了变化
func tabViewDidChangeNumberOfTabViewItems(_ tabView: NSTabView) {
}
网友评论