无法专注于Modal窗口中的NSTextFields

时间:2015-10-09 01:13:35

标签: objective-c nswindow nstextfield

我目前打开一个窗口,通过以下方式打开:

// FirstWindowController
[self showWindow:self];
[[self window] makeKeyAndOrderFront:self];
[NSApp runModalForWindow:[self window]];

点击按钮后我想隐藏FirstWindowController:

// FirstWindowController
[self.window orderOut:self];

然后显示我的第二个窗口:

// SecondWindowController
[self showWindow:self];
[[self window] makeKeyAndOrderFront:self];
[NSApp runModalForWindow:[self window]];

第一个窗口正确消失,出现第二个窗口。但我实际上无法在输入中使用NSTextField。但我可以单击取消按钮隐藏SecondWindowController并将焦点重新放回FirstWindowController。

为什么我无法点击任何NSTextField元素?

1 个答案:

答案 0 :(得分:1)

我遇到了同样的问题。它在窗口有标题栏时有用,否则没有。看起来窗口需要有一个标题才能成为一个关键的窗口。

解决方法是创建NSWindow的子类并覆盖-canBecomeKeyWindow:

  • (BOOL)canBecomeKeyWindow { 返回YES; }