0

我正在用 Objective-C 开发我的第一个应用程序,所以我完全希望它在这一点上不是“最佳实践”,但我认为我可能开始将我的代码/出口/操作分散在错误的地方。所以我想知道把这些东西放在哪里最好。这是我的应用程序的简要概述:

我在顶部有一个 NSTabView,其中包含一些 NSTextFields 和 NSButtons,所以我有一个我称之为 TabViewController 的东西,里面有所有的出口/动作。通过代码,我现在希望能够将文本字段的默认操作设置为两个按钮之一(所以我不能通过 ctrl+拖动来连接它,一个假设)。我以为我会在我的 TabViewController 的 init: 方法中执行此操作,但这似乎不起作用,所以我想它没有像我希望的那样被调用?

[_myTextFieldOutlet setTarget:self]; 
[_myTextFieldOutlet setAction:@selector(oneOfTheMethods:)];

因此,我正准备将一些出口拖到我的 AppDelegate 中,认为我应该从 applicationDidFinishLaunching: 方法中执行上述操作,但这现在需要两个文件中的这些文本字段的出口,而不仅仅是 TabViewController。我现在开始认为我正在制造混乱。如果我在 AppDelegate 中执行上述操作,并且也许 oneOfTheMethods: 也看不到,那么“自我”可能是不正确的?我还没有尝试过。

有一个更好的方法吗?我想摆脱在一个类中有一百个方法,并且在 GUI 中为每个主要容器都有一个控制器,这似乎很合理。但是当一个控制器中的方法需要引用其他控制器时,我开始认为我做错了。我对 c# .NET 更加熟悉,并且可以轻松地在那里完成相同的事情而不会出现问题,但是 Objective-C 和 XCode 仍然让我大部分时间都在猜测自己。

谢谢。

4

1 回答 1

3

我建议阅读 Mike Ash 的NSblog;我学到了很多。以下是他建议组织 Cocoa 应用程序的方法。

Cocoa 应用程序的基本 UI 组件是 NSWindow,有许多不同的方式来实例化和管理它们,但只有一种正确的方式:对于每种类型的窗口,都应该有一个单独的 nib 文件,以及一个专门的 NSWindowController子类。我将介绍这意味着什么以及如何做到这一点,这是读者 Mike Shields 提出的一个主题。

于 2013-08-17T03:18:26.217 回答