在Cocoa中创建自定义捕获窗口

时间:2010-10-25 09:38:36

标签: objective-c cocoa user-interface

我正在尝试制作一个自定义的透明边框窗口(没有小条)来捕捉屏幕的一部分。此窗口应该可以从右下角区域调整大小,并可以通过拖动任何边框线来移动。这个窗口应该是这样的,它也可以在苹果菜单上移动。

我是Cocoa的新手,你能否请一些指南或教程来了解在自定义窗口中创建自定义窗口和事件处理。

我已经看到了下面链接中给出的示例,它非常有用,但我无法理解整个代码。

http://cocoawithlove.com/2008/12/drawing-custom-window-on-mac-os-x.html

请指点我如何制作这样一个窗口,或者所有引用的内容都有足够的知识才能做到。

谢谢:)

1 个答案:

答案 0 :(得分:0)

你不能通过菜单栏的原因是NSWindow自动约束自己以防止它覆盖该区域(与码头一起)。在您的NSWindow子类中,添加以下内容:

- (NSRect)constrainFrameRect:(NSRect)frameRect toScreen:(NSScreen *)screen
{
    return frameRect;
}

这将覆盖使您无法覆盖菜单栏和Dock的constrainFrameRect。