NSWindow的自定义标题栏

高酷

我一直在尝试在标准NSWindow上创建自定义标题栏的帮助下为NSWindow创建自定义标题栏

NSView *themeFrame = [[window contentView] superview];
NSView *firstSubview = [[themeFrame subviews] objectAtIndex:0];
[titleBarView setAutoresizingMask:(NSViewMinYMargin | NSViewWidthSizable)];
[themeFrame addSubview:titleBarView positioned:NSWindowBelow relativeTo:firstSubview];

它适用于OSX 10.9,但在OSX 10.10中,Xcode发出警告:

NSWindow warning: adding an unknown subview:XXX
0   AppKit                              0x00007fff88f80b3c -[NSThemeFrame addSubview:] + 107
1   AppKit                              0x00007fff8896fb8f -[NSView addSubview:positioned:relativeTo:] + 208

该应用程序可以很好地运行并显示自定义的标题,并且此警告仅在Xcode控制台中显示。那么OSX 10.10会在此处进行一些更改吗?还有添加自定义标题栏的新方法吗?

企鹅仔

是的,OS X Yosemite使用新的NSTitlebarAccessoryViewController API将自定义子视图添加到标题栏:

NSWindow从不支持客户端将子视图添加到除contentView之外的任何其他内容。某些应用程序会将子视图添加到contentView.superview(也称为窗口的边框视图)。现在,NSWindow将在检测到以下情况时记录日志:“ NSWindow警告:添加未知的子视图:”。这样做的应用程序将需要解决此问题,因为它会阻止10.10上的新功能正常运行。有关官方API,请参见titlebarAccessoryViewControllers。

NSWindow现在可以将正式已知的子视图添加到标题栏/工具栏区域。视图将使用名为NSTitlebarAccessoryViewController的新NSViewController子类包装,并使用“ titlebarAccessoryViewControllers” API添加到窗口中。有一组添加和插入titlebarAccessoryViewControllers的方法,例如addTitlebarAccessoryViewController:和removeTitlebarAccessoryViewControllerAtIndex:。但是,也可以利用“ removeFromParentViewController”轻松删除给定的子视图控制器。NSTitlebarAccessoryViewController具有一个属性来告知NSWindow视图放置位置(layoutAttribute),以及一个属性来确定其在全屏状态下的行为(fullScreenMinHeight)。现在不推荐使用NSToolbar fullScreenAccessoryView API,

https://developer.apple.com/library/mac/releasenotes/AppKit/RN-AppKit/

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

NSWindow标题栏自定义

来自分类Dev

在自定义标题栏上设置标题文本

来自分类Dev

在我的自定义标题栏出现之前显示的默认标题栏

来自分类Dev

自定义图片作为标题栏中的图标

来自分类Dev

Android标题栏自定义视图不拉伸

来自分类Dev

获取双重自定义标题栏

来自分类Dev

ionic:如何向标题栏添加自定义元素或如何为每个视图添加自己的标题栏?

来自分类Dev

Android:使用“自定义ListAdapter”视图在“自定义标题栏”中未显示标题

来自分类Dev

如何自定义电子应用程序的窗口标题栏?

来自分类Dev

如何在Android的自定义标题栏中添加菜单和设置选项?

来自分类Dev

在运行时创建自定义标题栏和边框,TMainMenu起作用

来自分类Dev

最大化时从顶部拖动自定义窗口标题栏不起作用

来自分类Dev

如何更改多个活动的自定义窗口标题栏及其图标

来自分类Dev

如何在登录活动中自定义标题栏

来自分类Dev

如何使无边界表单在自定义标题栏上可拖动?

来自分类Dev

Android首选项屏幕中的自定义标题栏

来自分类Dev

管理Windows Aero的防抖功能与自定义标题栏

来自分类Dev

如何在Kivy中创建自定义标题栏?

来自分类Dev

向MetroWindow标题栏中的图标添加自定义样式

来自分类Dev

使用Tkinter移动自定义标题栏窗口,而无需从左上角移动

来自分类Dev

自定义标题栏不在Android中的TabHost上方

来自分类Dev

适用于Linux的Chrome自定义标题栏选项

来自分类Dev

如何更改多个活动的自定义窗口标题栏及其图标

来自分类Dev

具有自定义高度的NSTableView节标题栏

来自分类Dev

不在焦点时保留自定义标题栏颜色

来自分类Dev

我想在qt中创建一个自定义标题栏

来自分类Dev

Powershell + Windows Terminal:在标题栏中显示路径并自定义提示

来自分类Dev

有没有办法禁用/阻止自定义标题栏按钮?

来自分类Dev

NSWindow +标题栏没有圆角?

Related 相关文章

  1. 1

    NSWindow标题栏自定义

  2. 2

    在自定义标题栏上设置标题文本

  3. 3

    在我的自定义标题栏出现之前显示的默认标题栏

  4. 4

    自定义图片作为标题栏中的图标

  5. 5

    Android标题栏自定义视图不拉伸

  6. 6

    获取双重自定义标题栏

  7. 7

    ionic:如何向标题栏添加自定义元素或如何为每个视图添加自己的标题栏?

  8. 8

    Android:使用“自定义ListAdapter”视图在“自定义标题栏”中未显示标题

  9. 9

    如何自定义电子应用程序的窗口标题栏?

  10. 10

    如何在Android的自定义标题栏中添加菜单和设置选项?

  11. 11

    在运行时创建自定义标题栏和边框,TMainMenu起作用

  12. 12

    最大化时从顶部拖动自定义窗口标题栏不起作用

  13. 13

    如何更改多个活动的自定义窗口标题栏及其图标

  14. 14

    如何在登录活动中自定义标题栏

  15. 15

    如何使无边界表单在自定义标题栏上可拖动?

  16. 16

    Android首选项屏幕中的自定义标题栏

  17. 17

    管理Windows Aero的防抖功能与自定义标题栏

  18. 18

    如何在Kivy中创建自定义标题栏?

  19. 19

    向MetroWindow标题栏中的图标添加自定义样式

  20. 20

    使用Tkinter移动自定义标题栏窗口,而无需从左上角移动

  21. 21

    自定义标题栏不在Android中的TabHost上方

  22. 22

    适用于Linux的Chrome自定义标题栏选项

  23. 23

    如何更改多个活动的自定义窗口标题栏及其图标

  24. 24

    具有自定义高度的NSTableView节标题栏

  25. 25

    不在焦点时保留自定义标题栏颜色

  26. 26

    我想在qt中创建一个自定义标题栏

  27. 27

    Powershell + Windows Terminal:在标题栏中显示路径并自定义提示

  28. 28

    有没有办法禁用/阻止自定义标题栏按钮?

  29. 29

    NSWindow +标题栏没有圆角?

热门标签

归档