学习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相关推荐

  1. 学习Mac开发第四弹 通过NSImageView加载图片

    学习Mac开发第四弹 通过NSImageView加载图片 创建NSImageView 1 . 拖拽大法好 Autolayout 创建一个宽高160 *160 的NSImageView 创建是正方形的 ...

  2. 学习Mac开发第三弹 通过WebView加载网页

    学习Mac开发第三弹 通过WebView加载网页 添加WebKit.framework  关联Delegate 在新建工程的ViewController里拖放一个WebView,并用Autolayou ...

  3. FPGA开发第一弹:Vivado软件安装、开发使用与工程建立

    FPGA开发第一弹:Vivado软件安装.开发使用与工程建立 文章目录 FPGA开发第一弹:Vivado软件安装.开发使用与工程建立 软件安装 工程建立(软件使用) 新建工程 设计输入 功能仿真 创建 ...

  4. 学习IOS开发第一天——必备工具书和开发工具

    前言:今天是准备系统学习IOS开发的第一天,特地记录一下,因为最近要忙的东西实在太多了,白天几乎没时间看,当然,我现在从事的是.net开发,也不会允许我去看,再者背两台电脑上班也忒累了,所以就只好利用 ...

  5. 金蝶EAS开发 第一弹:了解开发工具与基本使用(上)

    毕业前夕,我来到了一家物流公司实习,为本公司做系统.我被分配的是用金蝶做财务系统的二次开发,没有文档的帮助真的让我头皮发麻,还好同事很热心,一直在帮助我,不然要上手这玩意还真的很有难度.入职已经两个星 ...

  6. 微信二次开发第一弹 —— 与微信握手

    说道握手,意思就是相互交流和确认通讯方式.那么要实现与微信服务器交流协作,就必须与微信服务器进行握手,确定好交流的方式. 在官方开发文档上写明了二次开发的步骤 请仔细研读 http://mp.weix ...

  7. 七夜在线音乐台开发 第一弹 (原创)

    从今天起,我就要开始七夜在线音乐台的开发.七夜音乐台确定采用flask web框架,音乐源采用网易音乐(仅做技术演示,不做商业用途).项目从设施,设计,开发,部署,上线几个方面展示web开发的整个流程 ...

  8. 【手把手带你Godot游戏开发 第一弹】零基础入门案例:FlappyBird(教程目录及源代码)

  9. 【手把手带你Godot游戏开发 第二弹】名场面临摹(教程目录 10月30日 更新)

    在[上一弹]中,通过对网红手游<FlappyBird>的临摹,我们初步了解了GDScript脚本语言以及Godot游戏引擎的基本工作流程,并且大家的脑海里应该已经建立起了一个可运转的游戏架 ...

最新文章

  1. 3D-2D:PnP算法原理
  2. python——LeetCode刷题
  3. python打包脚本_py2exe打包python脚本
  4. dockerfile文件名_Linux云计算教程全套视频合集:Dockerfile详解(一)
  5. java异常代码分析
  6. Hadoop教程(二)Hadoop伪集群环境安装
  7. 数据库优化查询的方法以及大访问量到数据库时的优化
  8. 高中计算机编辑程序,高中信息技术信息的编程加工教案
  9. 关于雄安新区的一点观察和思考
  10. 《众妙之门 JavaScript与jQuery技术精粹》 - 读书笔记总结[无章节版][1-60]
  11. ocr tesseract_OCR引擎之战— Tesseract与Google Vision
  12. GJB150.18A-2009机械冲击试验测试要求
  13. 十秒清理电脑垃圾文件
  14. 【一生一芯】Chap.0 IC常用网站论坛门户 如何提出一个技术问题 并尝试解决 | 提问的智慧
  15. Processing介绍及几个python模式下的案例
  16. Transformer相关的各种预训练模型优点缺点对比总结与资料收集(Transformer/Bert/Albert/RoBerta/ERNIE/XLnet/ELECTRA)
  17. 干货|TDD落地:从僵化、优化到固化的过程
  18. 3199. 命令行选项
  19. 前端 | 前端设计设计及代码收集
  20. vue 高德地图 不同区域显示不同颜色_老司机频繁掉沟里,高德百度腾讯地图导航到底该怎么选?...

热门文章

  1. 数据库SQL语言学习--上机练习2(连接查询 嵌套查询)
  2. Nginx安装及配置详解
  3. 学计算机个人心得体会,学习计算机心得体会范文五篇
  4. Unity官方图形教程 学习笔记(二) -- Precomputed Realtime GI(实时全局光照)
  5. 点击a标签,跳转到同一页面的指定内容,类似于点击按钮回到页面顶部效果
  6. 无穷小与潘多拉魔盒(Pandora's Box)
  7. Micronel U51DL-024KK-N
  8. linux shell编程作业,shell编程作业
  9. ServiceComb场景及其原理
  10. 【WinForm】DataGridView单元格居中