自定义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如何拖动
网友评论