2014-03-05 64 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