oc之mac开发 - NSButton - 勾选框(NSButtonTypeSwitch)
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)相关推荐
- html5怎么设置勾选,word文档怎么设置输入勾选框
我们做报告或者调查问卷时候最常用的应该就是勾选框了吧,那么怎么输入呢?下面学习啦小编就为大家介绍一下,一起来看看吧! word文档输入勾选框的方法 输入勾选框步骤1:首先我个人比较喜欢通过某些输入法软 ...
- qt中设置QCheckBox的文本与勾选框之间的距离
引言 项目中需要设置QCheckBox的文本与勾选框之间的距离,还有需要将勾选框设置的大一点,不是使用原始大小的勾选框.花了一点时间才知道如何实现.现在记录一下. 示例 我是通过样式表实现的文本与勾选 ...
- python画大对勾_python+selenium个人学习笔记8-获取信息和勾选框
获取信息.定位一组元素和勾选框 一.获取信息 在实际操作中,我们通常通过获取title .URL和text等信息进行断言. 1.获取当前页面的title driver.title 2.获取当前页面的U ...
- word勾选框涂黑和打勾
word勾选框涂黑和打勾 写个博客记录一下,这种技巧很久才用一次,老是记不住 像这种勾选框,我们需要把想选的选项要么勾起来,要么涂黑 (一)涂黑 假设要选"全日制",就把光标放在全 ...
- WEB自动化_告警框处理(对话框、确认框、提示框、输入/编辑框、勾选框、单选框、复选框、下拉框)
WEB自动化_下拉框选择(通过元素的value属性选择.下标选择.文本选择) 1. 获取(对话框.确认框.提示框)对象 al = driver.switch_to.alert点击ok 获取文本 点击c ...
- iview 动态控制 table中某一行select勾选框能否选中,以及某一行select勾选框能否显示(隐藏禁用的勾选框)。
如上图,这是一个vue页面中的table,在其columns中加了一个selection后,实现了多选/全选table行的功能: {type: 'selection',width: 60,align: ...
- pyqt5在表格中添加单选框(勾选框)
先看效果图; 下面是添加后面勾选框的代码: self.cbs = []for r in range(self.rows): # 添加勾选for c in range(self.cols):if c = ...
- PyQt5 复选框(勾选框)
-- coding: utf-8 -- import sys from PyQt5.QtWidgets import QApplication, QWidget, QCheckBox from PyQ ...
- el-tree只有叶子节点才显示勾选框vue-element
实现效果: template中:引用element的el-tree,其中show-checkbox为显示勾选框,选择true,默认所有节点均有勾选框. <el-treeclass="t ...
最新文章
- PNAS | 根际植保素合成调控细菌对植物的促生长作用
- python语言及其应用下载_Python语言及其应用 中文pdf完整版[13MB]
- EOS节点之争已开始 准备好欣赏了么?
- 【Anaconda】安装源---豆瓣,清华
- scala Akka并发编程介绍
- 代码字体mono_如何构建代码存储库:Multi,Mono或Organic?
- 全球超算500强新榜发布:美国卫冕 中国力争
- 我的学习网址(未完)
- 赢得 Docker 挑战最佳实践
- ListView刷新指定item
- 40 个科研学术网站,赶紧来收藏一波!
- 线性代数【18】点积和对偶性
- 合唱队形c语言编程,洛谷 P1091 合唱队形
- PHP生成海报/PHP合并图片/PHP图片处理
- Cannot find current proxy: Set ‘exposeProxy‘ property on Advised to ‘true‘ to make it available,and.
- python爬虫导入自己事先定义好的配置文件,在服务器运行出现ImportError: No module named 'a005_BanGuMi_spider_subject' 错误
- 拾忆Elasticsearch03:SpringBoot整合 Elasticsearch
- 【springboot】实现阿里云视频点播上传视频
- 金山毒霸6 最新版(全功能版) 注册版
- STM32F1 USB外设详解第0讲(系列博文介绍)