Mac开发-自定义NSWindow

自定义NSWindow分几步:

第一隐藏系统的NSTitlebarContainerView,自定义一个工具视图;
第二在自定义视图上添加系统交通灯;
第三在自定义视图上添加手势拖动;

一、添加手势拖动窗口有两个方法

1.NSWindow还是NSView都继承了NSResponder的多种键鼠标准方法,通过重写mouseDragged:方法实现;
后面的代码会有这部分;

2.使用系统的一个方法,在NSView上添加这句代码:

[[self window] setMovableByWindowBackground:YES];

这个方法实现的手势拖动区域高度并不是自定义头视图的高度,二是系统的titlebar的高度22;如果要修改拖动手势的区域范围,请参考方法3;
3.通过NSTitlebarAccessoryViewController修改拖动识别区域
自定义NSWindow的Title View

推荐方法2,简单方便;第1个方法在拖动到屏幕边界的时候,和系统的一些边界约束有冲突,未能解决;

二、系统交通灯;

两篇可参考的文章,完美自定义NSWindow、没有标题栏的NSWindow如何拖动

你可能感兴趣的:(Mac开发-自定义NSWindow)