MacOS 开发
来源:互联网 发布:东海航空 知乎 编辑:程序博客网 时间:2024/06/03 17:11
- 定义
- 创建
- 不使用数据源方法
- 使用数据源和代理
- 输入
定义
NSComboBox 继承自 NSTextField(所以有 backgroundColor 属性)。
创建
- (void)addComboBox{ NSComboBox *box = [[NSComboBox alloc]init]; //下面两者只对 box 内容有效 box.frame = NSMakeRect(100, 100, 100, 25); box.backgroundColor = [NSColor yellowColor]; box.numberOfVisibleItems = 2; //下拉可视2行,其他选项可滑动查看 //初始化数据 self.datas = @[ @"羊肉泡馍", @"油泼扯面", @"板栗烧鸡", @"豆腐花", ]; [self.window.contentView addSubview:box];}
不使用数据源方法
1、如下设置数据 [box addItemsWithObjectValues:self.datas];
2、可以设置默认选中干的数据: [box selectItemAtIndex:2]; //默认选中第二个,box的 内容 也会变成第二个。
3、没法监听选择了什么
即使使用 [box setAction:@selector(selectionChaned:)];
和
- (void)selectionChaned:(id)sender { NSComboBox *comboBox = sender; NSInteger selectedIndex = comboBox.indexOfSelectedItem; NSString *selectedContent = comboBox.stringValue; NSLog(@"selectedContent %@ at index %ld",selectedContent,selectedIndex);}
使用数据源和代理
1、添加
box.usesDataSource = YES; box.delegate = self; box.dataSource = self;
3、实现数据源和代理方法
#pragma mark - NSComboBoxDataSource- (NSInteger)numberOfItemsInComboBox:(NSComboBox *)aComboBox { return [self.datas count];}- (id)comboBox:(NSComboBox *)aComboBox objectValueForItemAtIndex:(NSInteger)index { return self.datas[index];}#pragma mark - NSComboBoxDelegate- (void)comboBoxSelectionDidChange:(NSNotification *)notification { NSComboBox *comboBox = notification.object; NSInteger selectedIndex = comboBox.indexOfSelectedItem; NSLog(@"comboBoxSelectionDidChange selected item %@",self.datas[selectedIndex]);}- (void)comboBoxSelectionIsChanging:(NSNotification *)notification { NSComboBox *comboBox = notification.object; NSInteger selectedIndex = comboBox.indexOfSelectedItem; NSLog(@"comboBoxSelectionIsChanging selected item %@",self.datas[selectedIndex]);}
输入
NSComboBox 继承自 NSTextField,所以如果你可以往里面输入东西,需要监听输入的话,可以添加 NSTextFieldDelegate。并添加代理方法:
-(void)controlTextDidChange:(NSNotification*)notification{ id object = [notification object]; NSLog(@"notification : %@",notification);}
参考资料:
- NSComboBox输入字符时自动打开下拉菜单并匹配:
http://www.jianshu.com/p/624ee153c893
阅读全文
1 0
- MacOS 开发
- MacOS 开发
- MacOS 开发
- MacOS 开发
- MacOS 开发
- MacOS 开发
- MacOS 开发
- MacOS 开发
- MacOS 开发
- MacOS 开发
- MacOS 开发
- MacOS 开发
- MacOS 开发
- MacOS 开发
- MacOS 开发
- MacOS 开发
- MacOS 开发
- MacOS 开发
- 使用BitMap实现游戏任务,成就的信息同步
- Gsonformat工具类
- 以科学计数法打印浮点数
- hive创建表错误[ Specified key was too long]
- tomcat端口号直接跳转到项目首页
- MacOS 开发
- Hexo + GitHub 博客搭建
- mtk led子系统概略
- Maven学习笔记(二)
- Android权限机制小结
- WPF 程序无法触摸操作
- 论文笔记:TextBoxes: A Fast Text Detector with a Single Deep Neural Network
- maven入门
- 搭建PHP开发环境(二)-PHP安装