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;

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏進无尽的文章

实践-腾讯新闻图文详情实现

1042
来自专栏一“技”之长

OS X开发:NSTextField文本输入框

    NSTextField组件可以接收用户的输入,和UITextField不同,其可以将用户的输入进行多行显示。示例代码如下:

3733
来自专栏iOS122-移动混合开发研究院

AwesomeMenu,仿Path主菜单效果

实例下载: 最新源代码点击下载 用法简介: 通过创建菜单各个单元项来创建菜单: UIImage *storyMenuItemImage = [UIImage i...

2146
来自专栏梧雨北辰的开发录

iOS导航栏使用总结

2422
来自专栏Golang语言社区

Golang语言中Path包用法

// path package main import ( "fmt" "os" "path" "path/filepath" ) func mai...

3737
来自专栏Alice

从相册中取图片

需要加载一个协议 UIImagePickerControllerDelegate //从手机相册中获得图片并显示在imageView中 - (IBAction)...

1849
来自专栏一“技”之长

iOS开发中标签控制器的使用——UITabBarController

        与导航控制器相类似,标签控制器也是用于管理视图控制器的一个UI控件,在其内部封装了一个标签栏,与导航不同的是,导航的管理方式是纵向的,采用pus...

912
来自专栏猿人谷

UIButton使用方法汇总

//按钮初始化类方法 UIButton *button1 = [UIButton buttonWithType:UIButtonTypeRoundedRect...

2025
来自专栏一“技”之长

iOS中UISearchBar(搜索框)使用总结

初始化:UISearchBar继承于UIView,我们可以像创建View那样创建searchBar

1151
来自专栏一“技”之长

IOS UIAlertView(警告框)方法总结

@property(nonatomic,copy) NSString *title;

461

扫码关注云+社区

领取腾讯云代金券