OS X开发:NSButton按钮控件应用

简介: OS X开发:NSButton按钮控件应用

NSButton控件用来创建功能按钮,和UIButton相比,其样式要丰富许多。NSButton继承自NSControl,其使用setTarget与setAction来添加触发方法,如下:

NSButton * btn = [[NSButton alloc]initWithFrame:CGRectMake(50, 300, 90, 25)];
[btn setTarget:self];
[btn setAction:@selector(click)];
[self.view addSubview:btn];

NSButton类中常用属性和方法解析如下:

//设置按钮标题
@property (copy) NSString *title;
//设置按钮开启状态的标题
@property (copy) NSString *alternateTitle;
//设置按钮图片
@property (nullable, strong) NSImage *image;
//设置按钮开启状态图片
@property (nullable, strong) NSImage *alternateImage;
//设置按钮图片位置
/*
typedef NS_ENUM(NSUInteger, NSCellImagePosition) {

NSNoImage                           = 0,            //无图片
NSImageOnly                         = 1,            //只有图片
NSImageLeft                         = 2,            //图片在左侧
NSImageRight                        = 3,            //图片在右侧
NSImageBelow                        = 4,            //图片在下侧
NSImageAbove                        = 5,            //图片在上侧
NSImageOverlaps                     = 6,            //图片重叠
NSImageLeading  API_AVAILABLE(macosx(10.12)) = 7,   //正方向
NSImageTrailing API_AVAILABLE(macosx(10.12)) = 8    //逆方向

};
*/
@property NSCellImagePosition imagePosition;
//设置图片缩放模式
/*
typedef NS_ENUM(NSUInteger, NSImageScaling) {

NSImageScaleProportionallyDown = 0, // 下方缩放
NSImageScaleAxesIndependently,      // 整体缩放
NSImageScaleNone,                   // 不缩放.
NSImageScaleProportionallyUpOrDown, // 上下缩放

NSScaleProportionally NS_ENUM_DEPRECATED_MAC(10_0, 10_10, "Use NSImageScaleProportionallyDown instead") = 0,
NSScaleToFit NS_ENUM_DEPRECATED_MAC(10_0, 10_10, "Use NSImageScaleAxesIndependently instead"),
NSScaleNone NS_ENUM_DEPRECATED_MAC(10_0, 10_10, "Use NSImageScaleNone instead")

};
*/
@property NSImageScaling imageScaling NS_AVAILABLE_MAC(10_5);
//图片是否环绕标题
@property BOOL imageHugsTitle;
//设置按钮状态
/*
enum {

NSMixedState = -1,  //混合状态
NSOffState   =  0,  //关闭状态
NSOnState    =  1,  //开启状态

};
*/
@property NSInteger state;
//设置是否显示边框
@property (getter=isBordered) BOOL bordered;
//设置按钮是否透明
@property (getter=isTransparent) BOOL transparent;
//设置快捷键
@property (copy) NSString *keyEquivalent;
//设置富文本标题
@property (copy) NSAttributedString *attributedTitle;
@property (copy) NSAttributedString *attributedAlternateTitle;
//设置边框风格
@property NSBezelStyle bezelStyle;
//设置是否当鼠标移动到按钮上时显示边框
@property BOOL showsBorderOnlyWhileMouseInside;
//设置按钮声音
@property (nullable, strong) NSSound *sound;
下面是一些便捷创建按钮的方法:

//创建标准的按钮 包括标题和图片

  • (instancetype)buttonWithTitle:(NSString )title image:(NSImage )image target:(nullable id)target action:(nullable SEL)action;

//创建文字按钮

  • (instancetype)buttonWithTitle:(NSString *)title target:(nullable id)target action:(nullable SEL)action;

//创建图片按钮

  • (instancetype)buttonWithImage:(NSImage *)image target:(nullable id)target action:(nullable SEL)action;

//创建复选框按钮

  • (instancetype)checkboxWithTitle:(NSString *)title target:(nullable id)target action:(nullable SEL)action;

//创建单选框按钮

  • (instancetype)radioButtonWithTitle:(NSString *)title target:(nullable id)target action:(nullable SEL)action;
目录
相关文章
|
2月前
|
安全 搜索推荐 Android开发
移动应用与系统:探索开发趋势与操作系统优化策略####
当今数字化时代,移动应用已成为日常生活不可或缺的一部分,而移动操作系统则是支撑这些应用运行的基石。本文旨在探讨当前移动应用开发的最新趋势,分析主流移动操作系统的特点及优化策略,为开发者提供有价值的参考。通过深入剖析技术创新、市场动态与用户需求变化,本文力求揭示移动应用与系统协同发展的内在逻辑,助力行业持续进步。 ####
52 9
|
18天前
|
存储 人工智能 JavaScript
Harmony OS开发-ArkTS语言速成二
本文介绍了ArkTS基础语法,包括三种基本数据类型(string、number、boolean)和变量的使用。重点讲解了let、const和var的区别,涵盖作用域、变量提升、重新赋值及初始化等方面。期待与你共同进步!
84 47
Harmony OS开发-ArkTS语言速成二
|
20天前
|
开发框架 JavaScript 前端开发
Harmony OS开发-ArkT语言速成一
本文介绍ArkTS语言,它是鸿蒙生态的应用开发语言,基于TypeScript,具有静态类型检查、声明式UI、组件化架构、响应式编程等特性,支持跨平台开发和高效性能优化。ArkTS通过强化静态检查和分析,提升代码健壮性和运行性能,适用于Web、移动端和桌面端应用开发。关注我,带你轻松掌握HarmonyOS开发。
50 5
Harmony OS开发-ArkT语言速成一
|
1月前
|
移动开发 前端开发 Android开发
探索移动开发之旅:从应用构思到操作系统的深度理解
在数字时代的浪潮中,移动应用与系统是连接用户与技术的桥梁。本文将带领读者踏上一场移动开发的探险旅程,从应用的构思和设计出发,深入到移动操作系统的核心原理。我们将通过实际代码示例,展示如何将创意转化为现实,并解析背后的技术机制。无论你是初学者还是有经验的开发者,这篇文章都将为你提供新的视角和知识,帮助你更好地理解和掌握移动应用开发的艺术。
|
1月前
|
安全 前端开发 Android开发
探索移动应用与系统:从开发到操作系统的深度解析
在数字化时代的浪潮中,移动应用和操作系统成为了我们日常生活的重要组成部分。本文将深入探讨移动应用的开发流程、关键技术和最佳实践,同时分析移动操作系统的核心功能、架构和安全性。通过实际案例和代码示例,我们将揭示如何构建高效、安全且用户友好的移动应用,并理解不同操作系统之间的差异及其对应用开发的影响。无论你是开发者还是对移动技术感兴趣的读者,这篇文章都将为你提供宝贵的见解和知识。
|
1月前
|
人工智能 搜索推荐 Android开发
移动应用与系统:探索开发趋势与操作系统演进####
本文深入剖析了移动应用开发的最新趋势与移动操作系统的演进历程,揭示了技术创新如何不断推动移动互联网生态的变革。通过对比分析不同操作系统的特性及其对应用开发的影响,本文旨在为开发者提供洞察未来技术方向的视角,同时探讨在多样化操作系统环境中实现高效开发的策略。 ####
26 0
|
1月前
|
开发框架 .NET PHP
网站应用项目如何选择阿里云服务器实例规格+内存+CPU+带宽+操作系统等配置
对于使用阿里云服务器的搭建网站的用户来说,面对众多可选的实例规格和配置选项,我们应该如何做出最佳选择,以最大化业务效益并控制成本,成为大家比较关注的问题,如果实例、内存、CPU、带宽等配置选择不合适,可能会影响到自己业务在云服务器上的计算性能及后期运营状况,本文将详细解析企业在搭建网站应用项目时选购阿里云服务器应考虑的一些因素,以供参考。
|
2月前
|
API 数据处理 C语言
探索操作系统:从基础概念到实际应用
本文将带你进入操作系统的世界,了解它的基本概念、发展历程和应用场景。我们将一起探讨操作系统的核心功能、体系结构以及它在计算机系统中的重要作用。同时,我们还将介绍一些常见的操作系统类型,并分析它们的特点。最后,通过一个简单的代码示例,展示操作系统在实际应用中的重要作用。让我们一起揭开操作系统的神秘面纱,探索它的奥秘吧!
|
2月前
|
人工智能 Android开发 数据安全/隐私保护
移动应用与系统:探索开发趋势与操作系统的协同进化####
当今时代,移动应用不再仅仅是简单的软件工具,它们已成为扩展智能手机及平板等设备功能的关键。本文旨在深入分析当前移动应用的开发趋势,探讨移动操作系统的最新进展及其对应用开发的影响,并阐述两者如何相互促进、协同进化,共同推动移动互联网技术向前发展。 ####
|
2月前
|
人工智能 物联网 Android开发
移动应用与系统:探索开发趋势与操作系统的协同进化####
本文深入探讨了移动应用开发的当前趋势,以及这些趋势如何与移动操作系统的发展相互影响、协同进化。通过分析最新的技术动态、市场数据及用户行为变化,本文旨在为开发者提供关于未来移动应用开发方向的洞察,并讨论操作系统层面的创新如何促进或制约应用的发展。 ####