美文网首页
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