美文网首页
macOS 开发之NSTabView

macOS 开发之NSTabView

作者: 魔都兰陵王 | 来源:发表于2018-12-27 15:48 被阅读10次

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) {
        
    }

相关文章

网友评论

      本文标题:macOS 开发之NSTabView

      本文链接:https://www.haomeiwen.com/subject/girzkqtx.html