我有一个关于使用 NSViewController 和在视图之间切换的问题。我有一个 Cocoa 应用程序,其中有一个窗口。窗口的想法是它将一个一个地显示多个视图,其中每个视图都存储在一个单独的 XIB 文件中。每个视图都有一个对应的 NSViewController。我做了一个最小的例子,说明我在做什么,只加载第一个视图。
@interface MyWindowController : NSWindowController {
NSViewController *currentViewController;
}
@property (assign) IBOutlet NSView *targetView;
@end
@implementation MyWindowController
@synthesize targetView;
- (id)init
{
return [super initWithWindowNibName:@"MyWindow"];
}
- (void)dealloc
{
[currentViewController release];
[super dealloc];
}
- (void)windowDidLoad
{
[super windowDidLoad];
currentViewController = [[NSViewController alloc] initWithNibName:@"FirstView" bundle:nil];
[self.targetView addSubview:currentViewController.view];
[currentViewController.view setFrame:targetView.bounds];
}
@end
当窗口被加载时,来自 FirstView.xib 的视图也被加载并且视图显示在窗口中。在这种情况下,加载的视图只有一个文本字段,我希望突出显示文本字段,以便可以直接将输入写入其中,而无需用户单击它,但我不知道该怎么做。加载视图时是否可以选择文本字段?
阅读文档后,我发现我可能想将窗口的 initialFirstResponder 设置为文本字段,但是当文本字段与窗口位于不同的 XIB 文件中时,我找不到如何执行此操作。