Cocoa 让自定义view铺满整个NSWindow

Cocoa 让自定义view铺满整个NSWindow,第1张

概述我们通过IB拖到窗体中的控件都是放到NSWindow的contentView视图中的,但是这个contentView不是铺满整个window的,顶部会有一个系统风格的titlebarView,现在项目需要让自定义的view可以铺满整个window。 在OS X 10.10之前,我们可以通过简单的两行代码来搞定: //把自定义的view添加到contentView的superview中,也就是NST

我们通过IB拖到窗体中的控件都是放到NSWindow的contentVIEw视图中的,但是这个contentVIEw不是铺满整个window的,顶部会有一个系统风格的TitlebarVIEw,现在项目需要让自定义的vIEw可以铺满整个window。
在OS X 10.10之前,我们可以通过简单的两行代码来搞定:

//把自定义的vIEw添加到contentVIEw的supervIEw中,也就是NSthemeVIEwNSVIEw *themeVIEw = [window.contentVIEw supervIEw];[themeVIEw addSubvIEw:self.vIEwCustom positioned:NSWindowBelow relativeTo:nil];

但是在Yosemite以后,运行以上代码,会得到一段警告:

NSWindow warning: adding an unkNown subvIEw: <NSVIEw: 0x608000120fa0>. Break on NSLog to deBUG.

虽然目前并不会影响程序的执行,但是对于有点洁癖的人来说,看到这段警告还是很不爽的,那么在Yosemite我们要怎么避免这个错误而实现我们的目的呢?

OS X 10.10之后,NSWindow的styleMask新增了一个NSFullSizeContentVIEwWindowMask,可以通过NSWindow的setStyleMask:来设置,也可以直接在IB中勾选Full Size Content VIEw选项。设置完后contentVIEw就会铺满整个窗体,包括Titlebar部分。一个设置就搞定了,比10.9之前更方便更实用。

总结

以上是内存溢出为你收集整理的Cocoa 让自定义view铺满整个NSWindow全部内容,希望文章能够帮你解决Cocoa 让自定义view铺满整个NSWindow所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1050946.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存