我从未使用 XCode 和 Cocoa 制作过应用程序,但我认为遵循以下说明:
我可以轻松地制作一个弹出窗口的应用程序,该窗口允许您按下按钮来调出 IKPictureTaker,但这并不是我想要的。我希望我的应用程序自动调出 PictureTaker。我假设要做到这一点,我必须完全放弃界面构建器并以编程方式完成整个事情,但我不知道什么调用会告诉 Cocoa 应用程序在启动时使用这个类或方法。这将在哪里以编程方式完成?我正在尝试在将在 OSX 中运行的 Cocoa 应用程序中完成所有这些工作。
我从未使用 XCode 和 Cocoa 制作过应用程序,但我认为遵循以下说明:
我可以轻松地制作一个弹出窗口的应用程序,该窗口允许您按下按钮来调出 IKPictureTaker,但这并不是我想要的。我希望我的应用程序自动调出 PictureTaker。我假设要做到这一点,我必须完全放弃界面构建器并以编程方式完成整个事情,但我不知道什么调用会告诉 Cocoa 应用程序在启动时使用这个类或方法。这将在哪里以编程方式完成?我正在尝试在将在 OSX 中运行的 Cocoa 应用程序中完成所有这些工作。
您将需要使用 beginPictureTakerWithDelegate:didEndSelector:contextInfo: 方法,该方法将为您提供一个独立的 pictureTaker 窗口。
IKPictureTaker *sharedPictureTaker = [IKPictureTaker pictureTaker];
[sharedPictureTaker setValue:[NSNumber numberWithBool:YES] forKey:IKPictureTakerShowEffectsKey];
[sharedPictureTaker beginPictureTakerWithDelegate:self didEndSelector:@selector(pictureTakerDidEnd:returnCode:contextInfo:) contextInfo:nil];
如果你把它放在某个地方,比如在你的 Application Delegate 的 applicationDidFinishLaunching: 方法中,你会得到图片获取窗口@startup。
如果您想要更自定义的解决方案,您可以查看 QuicktimeKit。它不像上面发布的三个班轮那么容易,但它相对无痛。您将在图片拍摄窗口的外观方面拥有更大的灵活性,能够从任意数量的输入中进行选择,能够添加自己的过滤器等。值得一看。
我对 IKPictureTaker 并不完全熟悉。如果它做了什么我不相信它然后让我知道。
奇怪的是,在 Xcode /Cocoa 中自动实例化一个类的方法是通过 Interface Builder (IB)。在 IB 中打开 MainMenu.xib 并确保可以看到 Document 窗口(菜单 Window >> Document)。现在,在库中展开 Cocoa >> Objects & Controllers >> Controllers。您会看到许多控制器,其中有一个蓝色立方体。将此蓝色立方体拖到 MainMenu.xib 文档窗口。您会看到 File's Owner 和 Font Manager 使用与其徽标相同的蓝色立方体。现在,选择您的蓝色立方体并在 Inspector 中选择身份面板(蓝色圆圈上的字母 i)。将 Class 设置为您之前在 Xcode 中创建的类,并保存 MainMenu.xib。当你运行你的程序时,你的类将被自动实例化。
- (void)awakeFromNib
{
NSLog(@"%@ I'm alive!", [self class]);
}