2009-10-21 83 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

相关问题