OS X开发:NSButton按钮控件应用 NSButton控件用来创建功能按钮,和UIButton相比,其样式要丰富许多。 NSButton继承自NSControl,其使用setTarget与setAction来添加触发方法,如下: NSButton * btn = [[NSButton alloc]initWithFrame )]; [btn setTarget:self]; [btn setAction:@selector(click)]; [self.view addSubview:btn]; NSButton
;中间上方是可视化的UI编辑器,下方则是对象管理器,显示了界面中定义的对象;右侧便是用来修改属性的Inspector窗口(近似于VS中的Properties窗口): 在Library里找到NSButton ,把它拖到中间的UI 编辑器窗口上,修改“Button”为“点击我”: 下面添加一个NSTextField,方法和NSButton类似,我们要做的一件事就是按下按钮的时候,修改TextField 点击“+”和增加buttonClicked 类型为 NSButton。在属性窗口中,您应该看到一个新收到行动称为buttonClicked。 关键是添加一个方法——buttonClicked,也需要NSButton。 程序就会按钮点击的时候触发请求该这个方法: int count = 0; partial void buttonClicked(NSButton sender) { label.StringValue
NSString *informativeText; //设置警告框图标 @property (null_resettable, strong) NSImage *icon; //向警告框中添加按钮 - (NSButton *)addButtonWithTitle:(NSString *)title; //按钮数组 @property (readonly, copy) NSArray<NSButton *> *buttons BOOL showsSuppressionButton NS_AVAILABLE_MAC(10_5); //获取不再提示按钮 @property (nullable, readonly, strong) NSButton
NSPopUpButton继承与NSButton,因此NSButton添加触发事件的方式在NSPopUpButton中依然使用,NSPopUpButton类中属性和方法解析如下: //初始化方法 flag
如何设置 NSButton 标题的颜色 使用 Module 名称解决名字冲突问题 NSButton 设置 attributedTitle 之前的对齐方式失效 关于 NSMutableParagraphStyle 我们替换成 NSButton之后似乎又遇到了另外的棘手的问题,那就是 NSButton竟然没有地方可以设置 title的颜色。 如何设置 NSButton标题的颜色 NSButton how to color the text。 纵观网上的教程大都是设置按钮的富文本或者是 NSMutableParagraphStyle。 设置 NSButton的分类用于设置分文本字体的颜色。 extension NSButton { @IBInspectable var titleColor:NSColor? NSButton设置 attributedTitle之前的对齐方式失效 还有一个问题出现了,那就是 Xib设置文字居中,竟然运行在左边。 ?
设置IBOutlet 和IBAction 3.3 实现保存路径选择的方法selectPath @IBAction func selectPath(_ sender: NSButton = NSOffState } } 3.4 使用NSTask 调用shell,执行git clone命令 @IBAction func startPull(_ sender: NSButton
,NSWindow,NSView都继承自NSResponder 一个NSResponder实例对象有三个组件:事件消息(鼠标,键盘,触控板等产生的),动作消息(action message: 比如NSButton 如果包含这个视图的NSWindow不是key Window,那么这个NSWindow将会变成key Window,并且丢弃本次的鼠标事件;也就是说如果你用鼠标点击了一个不是key Window窗口中的一个(NSButton 代表响应,NO则是不响应默认为NO),如果视图(NSView)体系中没有任何对象响应,那么NSApplication会将这个快捷键事件发送给menu bar(菜单栏).在Cocoa 的一些类中,比如 NSButton
sStr dataUsingEncoding:NSUTF8StringEncoding]; 8.NSTextView设置文本 [self.textview setString:sStr]; 9.xib下NSButton
function createCheckbox(frame, name, value, onstate, enabled) { var checkbox = NSButton.alloc
NSButton会使用已经存在的方法去重新定义setFrame:方法。以至于改变了IMP实现不会影响所有的View。 相同的事情也会发生在对NSControl进行swizzling的时候,同样,IMP也是定义在NSView类里面,把NSControl 和 NSButton这上下两行swizzle顺序替换,结果也是相同的 当调用NSButton的setFrame:方法,会去调用swizzled method,然后会跳入NSView类里面定义的setFrame:方法。 NSButton 和 NSControl各自调用各自的 swizzling方法,相互不会影响。 但是我们改变一下调用顺序,把NSView放在第一位调用。 相应的,NSControl在NSButton前面,NSButton也会去拉取到NSControl替换后的方法。这样就十分混乱了。但是顺序就是这样排列的。我们开发中如何能保证不出现这种混乱呢?
/// 显示是否勾选了这个配置 @IBOutlet weak var configCheckBox: NSButton!
<Bool> {} } extension NSSlider { public var rx_value: ControlProperty<Double> {} } extension NSButton
NS前缀改为UI前缀而已,因此,多数情况下,你在iOS中经常用的控件基本上Mac上已经存在了,试着使用NS来代替UI开头查找一下,你会惊讶的发现许多控件:NSScrollView, NSLabel, NSButton
. // // -rac_command 是NSButton的一个扩展.按钮被点击时,会将会把自身发送给rac_command self.button.rac_command = [[RACCommand
比如,在开发 Tea Maker 的过程中,我需要在侧边栏中按钮下面添加一行文字,如下图所示: 我们先在文档中搜索 NSButton 这个类,有一个 title 的属性: 点开这个方法,里面有这样一个说明 vartitle: String { get set } 根据我们上面说到的 JS 调用 Objective-C 的方法,我们在 Sketch 调用的时候,可以像下面这样来做: const button = NSButton.alloc
[label setDrawsBackground:YES]; [label setStringValue:@"HELLO WORLD"]; //设置按钮属性 NSButton * button = [[NSButton alloc] initWithFrame:NSMakeRect(120, 40, 80, 30)]; button.title = @"OCTOPUS
虽然系统的 NSButton是符合图片加文字效果的,但是却无法修改文字的颜色。 我们创建一个类继承与 BaseView名字叫做 SideMenuItemView。
Mac Catalyst 构建的应用程序选择首选的行为风格; 在视图控制器的大小检查器中使用 Freeform 模拟度量的 Storyboard 场景现在可以直接在画布中使用调整大小旋钮调整大小; NSButton