zoukankan      html  css  js  c++  java
  • swift之NSComboBox

    组合框(NSComBox)是一种下拉选择视图控件,可以通过addItem单个或批量添加文本条目,也可以使用数据源和代理的形式管理每个条目

    1.通过属性面板的Items配置

    2.通过动态接口加载数据

    3.使用数据源方式加载数据

    属性说明

    Items: 可以输入条目作为显示的列表内容

    VisibleItems:最多显示多少条目在界面上,超出的条目可以通过滚动来选择

    UsesDataSource:是否使用数据源方式,

    响应事件

    将 action事件绑定到自定义的 selectionChanged方法即可。 indexOfSelectedltem表示选择的

    条目的idx序号, string Value表示选择的文本内容,代码如下:

    //通过数据源设置数据

    class ViewController{

    func comBox(){

    //定义的局部变量

            let m_combobox = NSComboBox(frame: NSMakeRect(0, 0, 200, 300))

            m_combobox.target = self

            //1.动态增加列表内容Item

            m_combobox.addItem(withObjectValue: ("Fre"));

            m_combobox.addItems(withObjectValues: ["March","April","May","June","July","August","September","Octorber"])

            m_combobox.selectItem(at: 0)

            m_combobox.selectItem(withObjectValue: "May")

    //        m_combobox.selectAll(m_combobox)

            m_combobox.removeItem(at: 0)

            m_combobox.removeItem(withObjectValue: "May")

            m_combobox.removeAllItems()

    //当 NSCombo Box的 uses Data Source属性为tue时,表示要使用数据源的方式配置条目

    m_combobox.usesDataSource = true

    m_combobox.dataSource = self

            m_combobox.delegate = self

        }

    fileprivatevar dataSource:NSMutableArray = {

            var dataSource = NSMutableArray(array: ["Any","小王"])

            return dataSource

        }()

    }

    使用数据源和代理

    当 NSCombo Box的 uses Data Source属性为tue时,表示要使用数据源的方式配置条目。使

    用数据源的方式可以非常灵活地使用自定义的数据模型类去配置要显示的文本项。数据源数据

    配置好以后,调用 reload Data方法完成它的数据加载刷新

    下面的代码配置组合框使用数据源并且设置了代理:

    extension ViewController:NSComboBoxDelegate,NSComboBoxDataSource{

        

        func numberOfItems(in comboBox: NSComboBox) -> Int {

            

            return self.dataSource.count

        }

        func comboBox(_ comboBox: NSComboBox, objectValueForItemAt index: Int) -> Any? {

            return self.dataSource[index]

        }

        func comboBox(_ comboBox: NSComboBox, indexOfItemWithStringValue string: String) -> Int {

            return dataSource.index(of:string)

        }

        func comboBoxSelectionDidChange(_ notification: Notification) {

            let comBox = notification.object as! NSComboBox

            let selectedIndex = comBox.indexOfSelectedItem

            let selectedContent = comBox.stringValue

            print("selectedIndex = (selectedIndex) selectedContent = (selectedContent)")

        }

    }

  • 相关阅读:
    vue04-动画、组件
    vue02—— 动画、组件、组件之间的数据通信
    webpack使用
    Promise
    css 尾巴
    js尾巴
    Python字符串格式转换
    CentOS 6.5下Redmine的安装配置
    gem Errno::ECONNRESET: Connection reset by peer
    MySQL几个重要的目录
  • 原文地址:https://www.cnblogs.com/sundaymac/p/10337356.html
Copyright © 2011-2022 走看看