【问题标题】:How can I make an undecorated window in Cocoa?如何在 Cocoa 中制作未装饰的窗口?
【发布时间】:2009-05-15 04:15:17
【问题描述】:

我喜欢创建一个没有任何 chrome 的 Cocoa 窗口。用户应该看到的只有我画的东西。

我发现我可以创建一个自定义的 NSView,但这是否必须在 NSWindow 中才能显示?如果没有,如何在不将其放入 NSWindow 的情况下显示它?如果它必须在 NSWindow 中,如何阻止窗口绘制标题栏和其他 chrome?

【问题讨论】:

    标签: objective-c cocoa


    【解决方案1】:
    【解决方案2】:

    我发现我可以创建一个自定义的 NSView,但这是否必须在 NSWindow 中才能显示?

    是的。

    如果它必须在 NSWindow 中,我如何阻止窗口绘制标题栏和其他 chrome?

    创建窗口时使用NSBorderlessWindowMask。 (假设您没有使用 NSWindow 的自定义子类,这意味着不在 nib 中创建窗口实例。如果您想在 nib 中布置视图层次结构,请在顶级自定义视图中执行此操作,然后加载nib 并将该视图设置为窗口的内容视图。)

    【讨论】:

    • 您仍然可以在 nib 中创建窗口 - 只需在窗口的初始化程序中将无边框标志传递给 super 并将窗口设置为您在 nib 中的子类。
    • 假设你为它子类化 NSWindow。
    猜你喜欢
    • 2011-12-29
    • 1970-01-01
    • 1970-01-01
    • 2016-04-09
    • 2017-04-18
    • 2012-10-23
    • 1970-01-01
    • 2013-08-12
    • 1970-01-01
    相关资源
    最近更新 更多