NSWindows的程序化相当于“在发射时可见”

时间:2009-05-06 03:49:40

标签: cocoa

我正在尝试编写我设置的包含两个窗口的nib文件的程序化等效项:启动后出现的主窗口和工作表以提示输入凭据。只要有人记得取消选中工作表/窗口上的“可见发射”框,就可以在IB中连接这些工作正常。

但是,我无法弄清楚API的等效是什么“发布时可见”。当我使用程序化版本运行我的应用程序时,工作表被分离,而不是关键视图,就像我的应用程序在检查“可见启动时”时使用笔尖运行一样。因此,我的假设是,我错过了可见的秘密酱油。

有谁知道怎么做?

P.S。我知道如何在IB中完成这项工作,我特别想找出相同的代码,所以请不要告诉我只使用nib。我知道。

1 个答案:

答案 0 :(得分:2)

NSWindows通常是隐藏的。所以你不应该做任何事情;只是在你需要它之​​前不要显示窗口。这是一个简单的例子。

NSWindow *sheetWindow = [[NSWindow alloc] initWithContentRect:NSMakeRect(0, 0, 100, 100) styleMask:NSTitledWindowMask backing:NSBackingStoreBuffered defer:NO];
NSTextField *field = [[NSTextField alloc] initWithFrame: NSMakeRect(25, 25, 50, 50)];
[[sheetWindow contentView] addSubview:field];
[NSApp beginSheet:sheetWindow modalForWindow:[self window] modalDelegate:self didEndSelector:@selector(sheetDidEnd:) contextInfo:NULL];

当我运行上面的文本字段时获得了键盘焦点。

将来,请在这种情况下提供代码 - 更正现有代码要比编写新代码容易得多。

相关问题