【发布时间】:2014-03-05 18:05:08
【问题描述】:
我正在尝试实现类似 Macs Selection 屏幕截图的功能,我可以通过拖动光标来选择屏幕的一部分,并获取结果坐标 (CGRect)。
所以是这样的:
我一直在研究 AVScreenShack,听起来它应该这样做:https://developer.apple.com/library/mac/samplecode/AVScreenShack/Introduction/Intro.html
但它似乎对我不起作用。我最终得到的东西看起来像:
当我尝试设置坐标时,它什么也没做。
我看到这是相关代码,我相信:
- (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];
}
所以也许它正在做一些我想要的事情(能够选择当前视图上的区域)。
有人做过这样的事吗?我在想一定有一些东西在做类似的事情。
谢谢
【问题讨论】:
-
您的问题已经解决了吗,或者您还在寻找解决方案?
-
@ThomasJohannesmeyer 是的,它已经解决了。这是这个项目的一部分:github.com/Jonovono/Cutter。 (它实际上是为了让您可以拍摄所选屏幕的视频,而不是屏幕截图。)
-
您的解决方案是否适用于 2 台以上的显示器?因为即使是 Apple 样本也没有。
-
我没有尝试过超过 1 台显示器!我会试一试。
-
我用 3 试过了,没用。 ;-)
标签: ios objective-c macos cocoa screenshot