关闭

MacOS 开发 - NSComboBox

标签: NSComboBoxMacOS开发
2077人阅读 评论(1) 收藏 举报
分类:


定义

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
查看评论
发表评论
* 以上用户言论只代表其个人钱柜娱乐开户,不代表CSDN网站的钱柜娱乐开户或立场

NSComboBox 使用方法

功能:1.给combobox填充值 2.选中comb
  • u013317006
  • u013317006
  • 2014-05-26 18:44
  • 2998

OS及Mac开源项目和学习资料【超级全面】

UI 下拉刷新 EGOTableViewPullRefresh – 最早的下拉刷新控件。 SVPullToRefresh – 下拉刷新控件。 MJRefre...
  • yangyujun1314
  • yangyujun1314
  • 2016-01-22 15:46
  • 1753

开发一个简单的Mac应用

原文:http://www.raywenderlich.com/17811/how-to-make-a-simple-mac-app-on-os-x-10-7-tutorial-part-13 ...
  • Scott_cc
  • Scott_cc
  • 2015-11-24 21:08
  • 4565

Ruby on Rails入门——macOS 下搭建Ruby Rails Web开发环境

这里只介绍具体的过程及遇到的问题和解决方案,有关概念性的知识请参考另一篇:Ruby Rails入门——windows下搭建Ruby Rails Web开发环境macOS (我的版本是:10.12.3 ...
  • testcs_dn
  • testcs_dn
  • 2017-07-11 18:19
  • 1238

macOS搭建Spring Boot开发环境

软硬件环境 macOS Sierra java 1.8.0_65 maven 3.5.0 idea 2017.1.5 前言最近接触了一点java web相关的知识,了解一下最近比较火的开发框架Spri...
  • djstavaV
  • djstavaV
  • 2017-07-15 11:34
  • 542

使用Swift开发一个MacOS的菜单状态栏App

猴子原创,欢迎转载。转载请注明: 转载自Cocos2Der-CSDN,谢谢!   原文地址: /cocos2der/article/details/52054...
  • GuiLehan
  • GuiLehan
  • 2016-11-20 21:34
  • 251

macOS 下安装SDKMAN 软件开发工具包管理器

SDKMAN的安装非常简单,只需要打开终端,执行:$ curl -s "https://get.sdkman.io" | bash就OK了,输出类似如下:Thanks for using...
  • testcs_dn
  • testcs_dn
  • 2017-08-02 12:42
  • 599

【MacOS开发】HotKey(快捷键)

在MacOS开发中,设置快捷键是必不可少的,这里总结了两种方法。 方法一:在IB中快速设置如果将快捷键设置为MacAPP默认的,用户不可以更改的快捷键,推荐使用这种方法,十分便捷。具体就是在Story...
  • zz110731
  • zz110731
  • 2016-09-30 16:44
  • 805

MacOS下配置go开发环境

软硬件环境 macOS Sierra go 1.8 go语言简介Go是Google开发的一种编译型、并发型、具有垃圾回收功能的编程语言,出自三位大牛罗伯特·格瑞史莫(Robert Griesemer)...
  • djstavaV
  • djstavaV
  • 2017-04-08 00:18
  • 1202

iOS开发-RuntimeDebug运行时源码调试(macOS APP)

运行时源码-苹果官网如果只是看源码,远远不如自己造个工程进行断点调试来的清楚。 大家可以直接到我的githu上下载工程进行调试,目前RuntimeDebug_MacOSAPP分支是在MacOS AP...
  • Nathan1987_
  • Nathan1987_
  • 2017-11-20 13:49
  • 144
    钱柜娱乐开户
    个人资料
    • 访问:192739次
    • 积分:3225
    • 等级:
    • 排名:第12255名
    • 原创:123篇
    • 转载:6篇
    • 译文:1篇
    • 评论:97条
    最新评论