Flo*_*ked 9 macos cocoa nswindow
我想改变NSWindow标题栏的高度.
这里有些例子:
和…
我可以使用NSToolbar,但问题是我无法将视图放置得非常高(例如:我不能将segmentedControl放在比图片更高的位置,因为还有标题栏)
如果我删除标题栏,我无法放置NSToolbar,窗口不可移动.
你有什么想法吗?
Arv*_*vin 23
这比人们想象的要容易得多.我也开始寻求为我的应用做类似的事情.
真正的App Store应用程序:
我的App Store应用程序外观相似:
没有对INAppStoreWindow的不尊重,它是一个非常好的实现和坚实.我从中看到的唯一的缺点是,有很多绘图代码以及Apple可以随时调整的TitleBar颜色的硬编码设置.
所以这就是我做的方式:
A)创建一个标题窗口,其中包含标题栏,关闭,最小化,阴影,调整大小,全屏 - 主窗口全部设置.注意:您不需要纹理窗口也不需要设置标题
B)接下来添加具有以下设置的标准工具栏:
删除所有工具栏项目,并按以下顺序添加这些项目
NSSegmentControl(51 x 24) - | 灵活的空间| - NSSearchField(150 x 25)
C)在您的内容视图工具栏正下方添加一个常规大小的NSButton集,如下所示:
好的,到目前为止很容易,对吧?!
在您的Window Controller或app delegate ....设置IBOutlet到您的NSButton(s)
注意:请记住在界面构建器中连接IBOutlet
好吧,不要害怕我们现在必须编写一小段代码:
在awakeFromNib或windowDidLoad ....
所以代码看起来与此类似:
NSView *themeView = [self.contentView superview];
NSUInteger adj = 6;
[self.btnFeatured removeFromSuperview];
self.btnFeatured.frame = NSMakeRect( self.btnFeatured.frame.origin.x,
self.window.frame.size.height - self.btnFeatured.frame.size.height - adj,
self.btnFeatured.frame.size.width, self.btnFeatured.frame.size.height);
[themeView addSubview:self.btnFeatured];
Run Code Online (Sandbox Code Playgroud)
而已!您可以使用插座启用/禁用按钮,选择时设置遮罩图像,启用/禁用工具栏甚至隐藏所有内容并添加窗口标题.如果Apple改变他们的标准Window Titlebars,所有这一切都不用担心.
PS在这个帖子中没有使用任何私人框架!
INAppStoreWindow是NSWindow的子类,它告诉您如何更改标题栏的高度。
https://github.com/indragiek/INAppStoreWindow
http://iloveco.de/adding-a-titlebar-accessory-view-to-a-window/
此示例告诉您如何在标题栏中添加按钮。