学习Mac开发第一弹 认识 NSButton
学习Mac开发第一弹 认识 NSButton
NSButton 外观与属性
打开storyboard 面版,发现NSButton 有很多类型。先在ViewController 拖个PushButton 居中显示看看功能吧
本人非常推荐可视化编程,所见即所得。大量减少了ui的代码量,维护也非常方便。
如果你基本弄明白了图上的属性,用代码写起来就非常简单,下面就再用代码创建一个按钮
//创建按钮
NSButton *pushButton = [[NSButton alloc]initWithFrame:CGRectMake(self.view.frame.size.width/2-44,self.view.frame.size.height/2 + 30, 88, 88)];
//按钮样式
pushButton.bezelStyle = NSRoundedBezelStyle;
//是否显示背景 默认YES
pushButton.bordered = YES;
//按钮的Type[pushButton setButtonType:NSButtonTypeMomentaryPushIn];
//设置图片
pushButton.image = [NSImage imageNamed:@"close.png"];
//按钮的标题
[pushButton setTitle:@"我是按钮"];
//是否隐藏
pushButton.hidden = NO;
//设置按钮的tag
pushButton.tag = 100;
//标题居中显示
pushButton.alignment = NSTextAlignmentCenter;
//设置背景是否透明
pushButton.transparent = NO;
//按钮初始状态
pushButton.state = NSOffState;
//按钮是否高亮
pushButton.highlighted = NO;
//把当前按钮添加到视图上
[self.view addSubview:pushButton];
cooca mac 的坐标是在左下角,跟iOS起始坐标在左上角是有区别!
效果如下图
标题的富文本
NSMutableAttributedString *nameAttribute = [[NSMutableAttributedString alloc] initWithString:@"花名:胜任"];NSRange range = NSMakeRange(0, 3);[nameAttribute addAttribute:NSForegroundColorAttributeName value:[NSColor redColor]range:range];[nameAttribute addAttribute:NSFontAttributeName value:[NSFont systemFontOfSize:14]range:range];[nameAttribute fixAttributesInRange:range];[pushButton setAttributedTitle:nameAttribute];
效果如下
NSButton事件响应
- 1 拖拽大法:适用于不用传值,用法如图。
NSButton 的继承关系为 NSObject->NSResponder->NSView->NSControl->NSButton
2 拖拽大法二:可以传值,用法如图。
第一步
第二步 点击连接器,指定唯一标识符。
第三步 长按Control键,鼠标长按要push的按钮,拖拽到.m文件生成方法,代码如下
- (IBAction)pushAction:(id)sender {[self performSegueWithIdentifier:@"pushIdentifier" sender:self]; }- (void)prepareForSegue:(NSStoryboardSegue *)segue sender:(nullable id)sender{if ([segue.identifier isEqualToString:@"pushIdentifier"]) {SecondViewController *second = (SecondViewController*)segue.destinationController;second.addressString = @"请输入";}}
NSButton的类型定义在NSButtonCell类中。后续再学习NSButtonCell
学习Mac开发第一弹 认识 NSButton相关推荐
- 学习Mac开发第四弹 通过NSImageView加载图片
学习Mac开发第四弹 通过NSImageView加载图片 创建NSImageView 1 . 拖拽大法好 Autolayout 创建一个宽高160 *160 的NSImageView 创建是正方形的 ...
- 学习Mac开发第三弹 通过WebView加载网页
学习Mac开发第三弹 通过WebView加载网页 添加WebKit.framework 关联Delegate 在新建工程的ViewController里拖放一个WebView,并用Autolayou ...
- FPGA开发第一弹:Vivado软件安装、开发使用与工程建立
FPGA开发第一弹:Vivado软件安装.开发使用与工程建立 文章目录 FPGA开发第一弹:Vivado软件安装.开发使用与工程建立 软件安装 工程建立(软件使用) 新建工程 设计输入 功能仿真 创建 ...
- 学习IOS开发第一天——必备工具书和开发工具
前言:今天是准备系统学习IOS开发的第一天,特地记录一下,因为最近要忙的东西实在太多了,白天几乎没时间看,当然,我现在从事的是.net开发,也不会允许我去看,再者背两台电脑上班也忒累了,所以就只好利用 ...
- 金蝶EAS开发 第一弹:了解开发工具与基本使用(上)
毕业前夕,我来到了一家物流公司实习,为本公司做系统.我被分配的是用金蝶做财务系统的二次开发,没有文档的帮助真的让我头皮发麻,还好同事很热心,一直在帮助我,不然要上手这玩意还真的很有难度.入职已经两个星 ...
- 微信二次开发第一弹 —— 与微信握手
说道握手,意思就是相互交流和确认通讯方式.那么要实现与微信服务器交流协作,就必须与微信服务器进行握手,确定好交流的方式. 在官方开发文档上写明了二次开发的步骤 请仔细研读 http://mp.weix ...
- 七夜在线音乐台开发 第一弹 (原创)
从今天起,我就要开始七夜在线音乐台的开发.七夜音乐台确定采用flask web框架,音乐源采用网易音乐(仅做技术演示,不做商业用途).项目从设施,设计,开发,部署,上线几个方面展示web开发的整个流程 ...
- 【手把手带你Godot游戏开发 第一弹】零基础入门案例:FlappyBird(教程目录及源代码)
- 【手把手带你Godot游戏开发 第二弹】名场面临摹(教程目录 10月30日 更新)
在[上一弹]中,通过对网红手游<FlappyBird>的临摹,我们初步了解了GDScript脚本语言以及Godot游戏引擎的基本工作流程,并且大家的脑海里应该已经建立起了一个可运转的游戏架 ...
最新文章
- 3D-2D:PnP算法原理
- python——LeetCode刷题
- python打包脚本_py2exe打包python脚本
- dockerfile文件名_Linux云计算教程全套视频合集:Dockerfile详解(一)
- java异常代码分析
- Hadoop教程(二)Hadoop伪集群环境安装
- 数据库优化查询的方法以及大访问量到数据库时的优化
- 高中计算机编辑程序,高中信息技术信息的编程加工教案
- 关于雄安新区的一点观察和思考
- 《众妙之门 JavaScript与jQuery技术精粹》 - 读书笔记总结[无章节版][1-60]
- ocr tesseract_OCR引擎之战— Tesseract与Google Vision
- GJB150.18A-2009机械冲击试验测试要求
- 十秒清理电脑垃圾文件
- 【一生一芯】Chap.0 IC常用网站论坛门户 如何提出一个技术问题 并尝试解决 | 提问的智慧
- Processing介绍及几个python模式下的案例
- Transformer相关的各种预训练模型优点缺点对比总结与资料收集(Transformer/Bert/Albert/RoBerta/ERNIE/XLnet/ELECTRA)
- 干货|TDD落地:从僵化、优化到固化的过程
- 3199. 命令行选项
- 前端 | 前端设计设计及代码收集
- vue 高德地图 不同区域显示不同颜色_老司机频繁掉沟里,高德百度腾讯地图导航到底该怎么选?...