2014-03-05 65 views
2

我想实现类似Macs Selection屏幕截图的东西,我可以通过拖动光标选择屏幕的一部分,并获得结果坐标(CGRect)。Mac:屏幕截图选择实施? (选择屏幕的一部分的能力)

因此,像这样:

Something like this

我一直在寻找AVScreenShack这听起来像它应该这样做:https://developer.apple.com/library/mac/samplecode/AVScreenShack/Introduction/Intro.html

但它似乎并没有对我的工作。我最终得到的东西看起来像:

THis

,当我尝试设置的坐标它不会做任何事情。

我看,这是相关的代码,我相信:

- (IBAction)setDisplayAndCropRect:(id)sender 
{ 
for (NSScreen* screen in [NSScreen screens]) 
    { 
     NSLog(@"SCREEN %@", screen); 
    NSRect frame = [screen frame]; 
    NSWindow * window = [[NSWindow alloc] initWithContentRect:frame styleMask:NSBorderlessWindowMask backing:NSBackingStoreBuffered defer:NO]; 
    [window setBackgroundColor:[NSColor blackColor]]; 
    [window setAlphaValue:.5]; 
    [window setLevel:kShadyWindowLevel]; 
    [window setReleasedWhenClosed:YES]; 
    DrawMouseBoxView* drawMouseBoxView = [[DrawMouseBoxView alloc] initWithFrame:frame]; 
    drawMouseBoxView.delegate = self; 
    [window setContentView:drawMouseBoxView]; 
    [window makeKeyAndOrderFront:self]; 
} 

[[NSCursor crosshairCursor] push]; 
} 

因此,也许它做的比我想要的东西以外的东西(能够选择当前视图的区域)。

有没有人做过这样的事情?我认为必须有类似的东西。

谢谢

+1

您是否已经解决了您的问题,还是您仍在寻找解决方案? –

+0

@ThomasJohannesmeyer是的,它已经解决了。它是这个项目的一部分:https://github.com/Jonovono/Cutter。 (它实际上是这样,所以你可以拍摄一个选择的屏幕视频,而不是屏幕截图。) – Jonovono

+0

您的解决方案是否可以使用两台以上的显示器?因为即使是Apple样本也没有。 –

回答

0

我认为这会帮助你。

ScreenSnapshot示例代码,显示如何执行此操作。检查它

+2

这似乎只采取全屏幕快照。我会再看看它,但我早先发现了这个,我看不到它在哪里让我定义屏幕区域。 – Jonovono