码迷,mamicode.com
首页 > 编程语言 > 详细

swift之NSComboBox

时间:2019-01-30 12:48:02      阅读:347      评论:0      收藏:0      [点我收藏+]

标签:value   cti   代码   orb   数据源   get   ram   批量   完成   

组合框(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)")

    }

}

swift之NSComboBox

标签:value   cti   代码   orb   数据源   get   ram   批量   完成   

原文地址:https://www.cnblogs.com/sundaymac/p/10337356.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!