美文网首页
Mac app 开发之-NSButton使用

Mac app 开发之-NSButton使用

作者: 魔都兰陵王 | 来源:发表于2018-12-24 15:04 被阅读40次

    按钮 NSButton是NSControl的子类,是最常用的控件之一。
    NSButton的继承关系是:NSButton -> NSControl -> NSView -> NSResponder -> NSObject,是一个很长的继承链了。
    虽然都是Button,但是Mac系统是没有触摸事件的。所以和iOS中的UIButton差别很大.
    1.UIButton 事件类型很多, 而NSButton没有设置事件类型的方法
    2.UIButton 样式单一, 而NSButton可以选择很多样式(radiobutton,checkbutton等..)

    简单使用
              let btn = NSButton(frame: CGRect(x: 200, y: 20, width: 100, height: 40))
            btn.title = "点击"  //标题
            btn.alignment = NSTextAlignment.center //按钮上文字的对齐方式
            btn.font = NSFont(name: "Marker Felt", size: 16) // 字体
            btn.setButtonType(NSButton.ButtonType.onOff) //按钮功能样式: raido, 开关 等等
            btn.bezelStyle = NSButton.BezelStyle.roundRect //按钮的边框样式
            
            /** ButtonType.toggle 时 */
            btn.alternateTitle = "开启"  //设置开启时文字
            btn.alternateImage = NSImage(named: "abc")//设置开启时图片
            
            
            btn.isBordered = false     //是否显示边框
            btn.isTransparent = false  // 是否透明
            btn.isHighlighted = true   //按钮是否高亮
            
            /** 按钮快捷键 */
            btn.keyEquivalent = "I"  //设置快捷键
            btn.keyEquivalentModifierMask = NSEvent.ModifierFlags.shift //设置快捷键掩码
    //        btn.attributedTitle = attibuteTitle //设置富文本标题
            
            //给按钮添加事件
            btn.target = self
            btn.action = #selector(buttonClicked)
            
            view.addSubview(btn)
            
            //在OSX 10.12 后 NSButton 可以通过一些 convenience init 方法创建
            button = NSButton(title: "确定", target: self, action: #selector(buttonClicked))
            button.frame = CGRect(x: 20, y: 20, width: 100, height: 40)
            view.addSubview(button)
    

    NSButton 有多种ButtonType, BezelStyle这里也不详细说明,实践出真知。

    NSButtonCell

    NSButtonCell的继承关系是:NSButtonCell -> NSCell -> NSObject
    比NSButton少了两层的继承,所以Cell的性能比Control高很多了。

    Cell 和 Control

    NSCell 是作为UI层展示.
    NSButton和NSButtonCell同时存在,设置NSButton的属性,也就是设置NSButtonCell的属性(某些)。

    相关文章

      网友评论

          本文标题:Mac app 开发之-NSButton使用

          本文链接:https://www.haomeiwen.com/subject/whgakqtx.html