【发布时间】:2012-03-08 00:07:35
【问题描述】:
我有一个 NSWindow,基本上,每次用户将鼠标悬停在 NSWindow 上时,我都试图在 NSWindow 范围之外弹出一个 NSWindow。
但是每次我尝试这样做时,由于 NSView 超出了 NSWindow 的范围,它就会被切断。
这是我想要实现的目标的图片:
【问题讨论】:
标签: objective-c cocoa nsview nswindow
我有一个 NSWindow,基本上,每次用户将鼠标悬停在 NSWindow 上时,我都试图在 NSWindow 范围之外弹出一个 NSWindow。
但是每次我尝试这样做时,由于 NSView 超出了 NSWindow 的范围,它就会被切断。
这是我想要实现的目标的图片:
【问题讨论】:
标签: objective-c cocoa nsview nswindow
您需要创建一个无边框的NSWindow,足够大以包含您的视图,并使该窗口成为它所连接的主窗口的子窗口。要使一个窗口成为另一个窗口的子窗口,请使用NSWindow 的addChildWindow:ordered: 方法。
子窗口附加到父窗口,当父窗口移动时,子窗口将随父窗口一起移动。如果您只是打开一个新窗口而不将其设置为子窗口,如果移动另一个窗口,它将被“留下”。
要制作无边框窗口,请将NSBorderlessWindowMask 作为styleMask 传递给initWithContentRect:styleMask:backing:defer: 的initWithContentRect:styleMask:backing:defer: 方法。
【讨论】:
最简单的方法是创建另一个没有边框的NSWindow 并将按钮放入其中。
【讨论】: