2009-11-06 61 views
0

我從來沒有打過一個應用程序使用Xcode和可可,但我認爲這些指令後:製作可可應用程序彈出一個窗口小部件,而不是一個窗口

http://developer.apple.com/Mac/library/documentation/GraphicsImaging/Reference/IKImagePicker_Class/IKImagePicker_Reference.html

,我可以很容易地彈出一個應用程序一個窗口,允許你按下一個按鈕來調出IKPictureTaker,但這不是我想要的。我想讓我的應用程序自動調出PictureTaker。我假設要做到這一點,我必須完全放棄界面生成器並以編程方式完成整個事情,但我無法弄清楚什麼樣的調用會告訴Cocoa應用程序在啓動時使用此類或方法。這是以編程方式完成的?我試圖在將在OSX中運行的Cocoa應用程序中執行所有這些操作。

alt text http://www.freeimagehosting.net/image.php?38f459584c.png][img=http://www.freeimagehosting.net/uploads/th.38f459584c.png

回答

1

你要使用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]; 

如果你把那個地方,例如您的應用程序委託的applicationDidFinishLaunching:方法,你會得到的圖片接受者窗口@啓動。

+0

非常感謝您的回覆。我仍然有點困惑。我在哪裏訪問應用程序委託?如果我在XCode中有一個空白的Cocoa項目,我似乎無法訪問NSAplication,是否需要創建委託?或者隱藏在某個地方? – Mike2012 2009-11-06 22:08:06

+1

從頭開始,您可以通過新建項目 - > Cocoa Application來完成。然後看@自動創建的ApplicationDelegate類。否則,您只需通過從應用程序圖標拖動到IB的自定義類來鏈接它。 – 2009-11-06 22:29:11

0

如果您想要更自定義的解決方案,您可以查看QuicktimeKit。這並不像上面列出的三個班輪那樣容易,但它相對沒有痛苦。您的圖片獲取者窗口的外觀會更加靈活,可以從任意數量的輸入中進行選擇,可以添加自己的過濾器等。值得一看。

我對IKPictureTaker並不完全熟悉。如果它做了什麼,我不記得它,然後讓我知道。

0

奇怪的是,通過Interface Builder(IB)自動實例化Xcode/Cocoa中類的方法。在IB中打開MainMenu.xib並確保可以看到文檔窗口(菜單窗口>>文檔)。現在,在庫中展開可可>>對象&控制器>>控制器。你會看到一些控制器,其中一個藍色的立方體。將此藍色立方體拖到MainMenu.xib文檔窗口中。您會看到文件所有者和字體管理器與其徽標具有相同的藍色立方體。現在,選擇您的藍色立方體,並在Inspector中選擇Identitiy面板(在藍色圓圈上的字母i)。將Class設置爲您在Xcode中創建的類,然後保存MainMenu.xib。 當你運行你的程序時,你的類將自動實例化。你可以從哪裏開始調用其他方法或實例化其他對象的起點是

- (void)awakeFromNib 
{ 
    NSLog(@"%@ I'm alive!", [self class]); 
} 
相關問題