MacOS 开发 - NSWindow 自定义样式


窗口对象包括titleBar,contentView内容视图,contentBoder底部边框区。

titleBar上面包括控制按钮,标题。

窗口的组成


设置标题

[self.window setTitle:@"我的 App 标题"];


设置标题栏图标

先将 png 格式图片拖到Assets 中,我的图片名为’swift.png’ 
配置代码如下:

  • 1
  • 2
  • 3

设置窗口背景颜色

  • 1
  • 2
  • 3
  • 4

设置 Content Border

默认是none 不显示出来. 
需要显示的话可以选择 Small/Large Bottom Border 其他选项 
这里我还不知道怎么用代码控制,会的可以告诉我。

Content Border 配置


自定义titleBar

原理:隐藏系统自带的titlebar, 继承NSView自己绘制一个titlebar, 在其上添加相应的关闭,最小化,最大化按钮,可以自定义调节颜色,隐藏,显示,高度,以及添加相应的其它控件。


隐藏titlebar

  • 1
  • 2

隐藏titlebar

  • 但设置window.contentView 的颜色后,显示效果如下: 
    隐藏titlebar

设置为点击背景可以移动窗口

  • 如果隐藏了标题栏,点击标题栏位置,仍然可以拖动窗口。但是用户不知道标题栏的位置,所以需要设置点击背景也可以移动。

[self.window setMovableByWindowBackground:YES];


titleBar和下面的view合并到一起

xib:在Main.storyboard选中Window,勾选属性Full Size Content View

代码: 
self.window.styleMask = self.window.styleMask | NSWindowStyleMaskFullSizeContentView;

  • 不隐藏titleBar

titleBar和contentView融合

  • 隐藏titleBar

titleBar和contentView融合-隐藏titleBar


系统提供的样式

常用的创建代码:

  • 1
  • 2
  • 3
  • 4
  • 5

1、styleMask: 按位表示的窗口风格参数

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

2、backing:窗口绘制的缓存模式

  • 1
  • 2
  • 3
  • 4
  • 5

3、defer:表示延迟创建还是立即创建

4、NSWindowStyleMask

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值