NSButtonTypeSwitch 就是勾选样式
其他样式可参考:http://blog.csdn.net/lovechris00/article/details/77976480
allowsMixedState 代表是否可以混合选择。YES-有三种状态,-1、1、0;NO-2种状态,1、0。
使用 setAction 来监听。
只设置 buttonType 即可,不用设置 bezielType,设置了也无效。存疑: 这两者如何组合使用?
- (void)addCheckBtn{

NSButton *btn0 = [[NSButton alloc]init];

btn0.frame = NSMakeRect(100, 100, 100, 100);

btn0.wantsLayer = YES;
btn0.layer.backgroundColor = [NSColor cyanColor].CGColor;

[btn0 setButtonType:NSButtonTypeSwitch];

//YES-有三种状态,-1、1、0
//NO-2种状态,1、0
btn0.allowsMixedState = YES;

[self.window.contentView addSubview:btn0];

[btn0 setAction:@selector(valueChange:)];

}

- (void)valueChange:(NSButton *)sender{

NSButton *checkBtn = sender;
BOOL isOn = checkBtn.state;
NSLog(@" %d",isOn);
}
---------------------
作者:lovechris00
来源:CSDN
原文:https://blog.csdn.net/lovechris00/article/details/77977824
版权声明:本文为博主原创文章,转载请附上博文链接!

NSButtonType

typedef NS_ENUM(NSUInteger, NSButtonType) {
NSButtonTypeMomentaryLight = 0,
NSButtonTypePushOnPushOff = 1,
NSButtonTypeToggle = 2,
NSButtonTypeSwitch = 3,
NSButtonTypeRadio = 4,
NSButtonTypeMomentaryChange = 5,
NSButtonTypeOnOff = 6,
NSButtonTypeMomentaryPushIn = 7,
NSButtonTypeAccelerator NS_ENUM_AVAILABLE_MAC(10_10_3) = 8,
NSButtonTypeMultiLevelAccelerator NS_ENUM_AVAILABLE_MAC(10_10_3) = 9,
};

显示结果

小结:
- 1、6 类型(NSButtonTypePushOnPushOff、NSButtonTypeOnOff),选中状态是蓝色,再次点击才会恢复到原来的颜色。
- 0、2、7(NSButtonTypeMomentaryLight、NSButtonTypeToggle、NSButtonTypeMomentaryPushIn) 点击时会有背景色(高亮状态)。
- 5(NSButtonTypeMomentaryChange) 点击时会有高亮状态,文字一闪,但是没有高亮的背景色。
- 3(NSButtonTypeSwitch) 适合做多选
- 4 (NSButtonTypeRadio) 适合做单选。

测试代码

- (void)addSerialBtn2{

CGFloat btnW = 80;
CGFloat btnH = 40;

for (int i = 0; i < 8; i++) {
NSButton *btn = [[NSButton alloc]initWithFrame:NSMakeRect( 20 + (i % 5) * (btnW + 5) ,50 + (i / 5) * (btnH + 40), btnW, btnH)];

// btn.bezelStyle = i;

btn.bezelStyle = NSRoundedBezelStyle;

[btn setButtonType:i];

NSString *btnName = [NSString stringWithFormat:@"按钮 - %d",i];
[btn setTitle:@"按钮"];
// [btn setTitle:@""];
btn.wantsLayer = YES;
btn.layer.backgroundColor = [NSColor cyanColor].CGColor;
[self.window.contentView addSubview:btn];

NSTextField *field = [[NSTextField alloc]initWithFrame:NSMakeRect(CGRectGetMinX(btn.frame), CGRectGetMinY(btn.frame) - 22, btnW, 20)];
field.stringValue = btnName;
field.bezelStyle = i;
[self.window.contentView addSubview:field];

}
}
---------------------

转载于:https://www.cnblogs.com/sundaymac/p/10334170.html

oc之mac开发 - NSButton - 勾选框(NSButtonTypeSwitch)相关推荐

  1. html5怎么设置勾选,word文档怎么设置输入勾选框

    我们做报告或者调查问卷时候最常用的应该就是勾选框了吧,那么怎么输入呢?下面学习啦小编就为大家介绍一下,一起来看看吧! word文档输入勾选框的方法 输入勾选框步骤1:首先我个人比较喜欢通过某些输入法软 ...

  2. qt中设置QCheckBox的文本与勾选框之间的距离

    引言 项目中需要设置QCheckBox的文本与勾选框之间的距离,还有需要将勾选框设置的大一点,不是使用原始大小的勾选框.花了一点时间才知道如何实现.现在记录一下. 示例 我是通过样式表实现的文本与勾选 ...

  3. python画大对勾_python+selenium个人学习笔记8-获取信息和勾选框

    获取信息.定位一组元素和勾选框 一.获取信息 在实际操作中,我们通常通过获取title .URL和text等信息进行断言. 1.获取当前页面的title driver.title 2.获取当前页面的U ...

  4. word勾选框涂黑和打勾

    word勾选框涂黑和打勾 写个博客记录一下,这种技巧很久才用一次,老是记不住 像这种勾选框,我们需要把想选的选项要么勾起来,要么涂黑 (一)涂黑 假设要选"全日制",就把光标放在全 ...

  5. WEB自动化_告警框处理(对话框、确认框、提示框、输入/编辑框、勾选框、单选框、复选框、下拉框)

    WEB自动化_下拉框选择(通过元素的value属性选择.下标选择.文本选择) 1. 获取(对话框.确认框.提示框)对象 al = driver.switch_to.alert点击ok 获取文本 点击c ...

  6. iview 动态控制 table中某一行select勾选框能否选中,以及某一行select勾选框能否显示(隐藏禁用的勾选框)。

    如上图,这是一个vue页面中的table,在其columns中加了一个selection后,实现了多选/全选table行的功能: {type: 'selection',width: 60,align: ...

  7. pyqt5在表格中添加单选框(勾选框)

    先看效果图; 下面是添加后面勾选框的代码: self.cbs = []for r in range(self.rows): # 添加勾选for c in range(self.cols):if c = ...

  8. PyQt5 复选框(勾选框)

    -- coding: utf-8 -- import sys from PyQt5.QtWidgets import QApplication, QWidget, QCheckBox from PyQ ...

  9. el-tree只有叶子节点才显示勾选框vue-element

    实现效果: template中:引用element的el-tree,其中show-checkbox为显示勾选框,选择true,默认所有节点均有勾选框. <el-treeclass="t ...

最新文章

  1. PNAS | 根际植保素合成调控细菌对植物的促生长作用
  2. python语言及其应用下载_Python语言及其应用 中文pdf完整版[13MB]
  3. EOS节点之争已开始 准备好欣赏了么?
  4. 【Anaconda】安装源---豆瓣,清华
  5. scala Akka并发编程介绍
  6. 代码字体mono_如何构建代码存储库:Multi,Mono或Organic?
  7. 全球超算500强新榜发布:美国卫冕 中国力争
  8. 我的学习网址(未完)
  9. 赢得 Docker 挑战最佳实践
  10. ListView刷新指定item
  11. 40 个科研学术网站,赶紧来收藏一波!
  12. 线性代数【18】点积和对偶性
  13. 合唱队形c语言编程,洛谷 P1091 合唱队形
  14. PHP生成海报/PHP合并图片/PHP图片处理
  15. Cannot find current proxy: Set ‘exposeProxy‘ property on Advised to ‘true‘ to make it available,and.
  16. python爬虫导入自己事先定义好的配置文件,在服务器运行出现ImportError: No module named 'a005_BanGuMi_spider_subject' 错误
  17. 拾忆Elasticsearch03:SpringBoot整合 Elasticsearch
  18. 【springboot】实现阿里云视频点播上传视频
  19. 金山毒霸6 最新版(全功能版) 注册版
  20. STM32F1 USB外设详解第0讲(系列博文介绍)

热门文章

  1. 随机森林案例分析:德国银行信贷风险分析
  2. 一切尽显眼前:如何预防在虚拟化环境中丢失可视性和安全性
  3. ORACLE SQL开发where子句之case-when
  4. Android 之 布局训练
  5. wordpress网站后台打开速度很慢解决方法?
  6. 【C/C++学院】(27)项目实战HttpServer--原理分析
  7. 使用getopts处理选项
  8. SEO中的DIV CSS样式的命名规则
  9. treeview递归绑定的两种方法
  10. 内嵌iframe撑高父容器,底部有4px留白问题解决办法