• 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)")

        }

    }

  • 相关阅读:
    如何判断网页中引入jquery
    回车事件jquery
    bootcss
    jquery 固定导航
    vs2012常用快捷键总结
    网页上新闻,多余内容用....(省略号)代替
    git的使用
    vue获取点击事件源的方法
    JS实现复制功能
    AdminLTE 学习笔记
  • 原文地址:https://www.cnblogs.com/sundaymac/p/10337356.html
Copyright © 2020-2023  润新知