2
我有一個關於使用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文件中時,找不到該如何操作。
通過設置不只是視圖,但其netKeyView成爲第一響應者,並在文本字段中設置IB的相應插座,我可以在視圖加載後選擇文本字段。否則,視圖本身成爲按下標籤時文本字段將被選中的第一響應者。 – 2011-06-17 05:30:51
@Brian True;這取決於子視圖的實際內容。 – 2011-06-17 06:37:31