我正在使用Objective-C开发我的第一个应用程序,所以我完全期望它现在不是“最佳实践”,但我想我可能会开始将我的代码/出口/操作分散到错误的地方。所以我想知道把这些东西放在哪里最好的地方。这是我的应用程序的简要概述:
我的顶部有一个NSTabView包含一些NSTextFields和NSButtons,所以我有一个我称之为TabViewController的内容,其中包含所有内容/动作。通过代码我现在希望能够将文本字段的默认操作设置为两个按钮之一(所以我不能通过ctrl +拖动来连接它,假设)。我以为我会在我的TabViewController的init:方法中执行此操作,但这似乎不起作用,所以我猜它没有像我希望的那样被调用?
[_myTextFieldOutlet setTarget:self];
[_myTextFieldOutlet setAction:@selector(oneOfTheMethods:)];
所以,我打算将一些插座拖到我的AppDelegate,以为我应该在applicationDidFinishLaunching:方法中执行上述操作,但现在需要在两个文件中使用这些文本字段的插座,而不仅仅是TabViewController。我现在开始认为我弄得一团糟。据推测,如果我在AppDelegate中做了上述内容并且可能只有一个方法,那么“自我”就不对了:也看不到了?我还没试过。
有更好的方法吗?我想摆脱一个类中的一百个方法,并且GUI中的每个主要容器都有一个控制器似乎足够合理。但是当一个控制器中的方法需要引用其他控制器时,我开始认为我做错了。我对c#.NET更熟悉,很容易就可以在没有问题的情况下完成同样的工作,但是Objective-C和XCode在大多数时候仍然让我自己做猜测。
感谢。
答案 0 :(得分:3)
我建议阅读Mike Ash的NSblog;我学到了很多。以下是他的建议organizing a Cocoa app。
Cocoa应用程序的基本UI组件是NSWindow 有许多不同的实例化和管理它们的方法,但有 只有一种正确的方法:对于每种类型的窗口,应该有一个 单独的nib文件和一个专门的NSWindowController子类。生病 了解这意味着什么,以及如何做到这一点 读者Mike Shields。