2009-10-21 84 views
1

我所需要做的就是在窗口的NSView中加載和交換一些筆尖。我知道如何用NSViewController做到這一點,並使其與10.5-10.6完美協作,但我不知道該怎麼做10.4。你會怎麼做,而不是使用NSViewController與10.4兼容?

教程鏈接非常受歡迎,我很難找到遺留的東西。

(是的,我確實需要支持10.4。)

+0

(是的,我確實需要支持10.4。)...你確定嗎?真?統計數據一再證明,不更新其操作系統的消費者不會更新他們的應用程序的以太網。唯一值得注意的例外是K-12。 – geowar 2009-10-23 16:11:20

+0

我真的很確定。這個版本終於下降了10.3(!)。下一個版本我們將下降10.4。 (我的應用程序是對主應用程序的補充。)主應用程序必須每四個月更新一次或停止工作。 (你每年都會訂閱。) – zekel 2009-10-24 19:49:15

回答

3

從豹紋NSViewController的工作,我可以告訴你,它的功能非常基本的,你應該能夠相當輕鬆簡單地複製它。

實質上,它有一個view屬性/插座和一個initWithNibName:bundle:方法。除此之外,它沒有做任何特別花哨的事情。它有一些便利的東西,例如採用NSEditorrepresentedObject屬性。你應該可以在一兩個小時內敲出相同的課程。

現在,如果你這樣做,你會放棄什麼,是與更高版本的Cocoa兼容。最終,你可能會減少10.4的支持,你會留下你的班級和真正的NSViewController。當發生這種情況時,我建議將您的自定義視圖控制器重新設置在Cocoa的NSViewController上。如果您已使用與NSViewController相同的名稱/數據類型命名屬性,則只需刪除自己聲明的屬性和方法。

1

基本上,你寫你自己的控制器的類,它是NSViewController做同樣的事情。控制器類被添加到AppKit中,因爲我們中的很多人一遍又一遍地編寫基本相同的代碼。

+0

我被告知有一個可可開發站點之一,但我找不到它...... – zekel 2009-10-21 22:25:53

2

使用NSBundle加載筆尖:

YourController *controller = [[YourController alloc] init]; 
BOOL success = [NSBundle loadNibNamed:@"YourNibName" owner:controller]; 
+0

看起來像loadNibName:owner是一個類方法,而不是一個實例方法。 – zekel 2009-10-22 18:27:07

+0

你是對的;我編輯答案是更正確的。 – ianh 2009-10-22 20:05:49

相關問題