我真的很感激此问题的答案,但无法提供赏金(!)。

这里我们有一个非常简单的GUI:用户只需在两个文本框中输入一个源词和一个目标词,然后按下一个按钮。然后发生了很多呼啸,半秒钟后显示了答案。用户继续这样做直到无聊为止,然后关闭该应用程序。自然,当应用程序重新启动时,重点应该放在源代码上,我希望有比上述方法更简洁的方法来实现此目的。下面的评论者证实了我的感觉,即问题是Lion持久性的产物,在像这样的简单情况下,这确实是一件令人讨厌的事情。

我在一个简单的“ controller”类的awakeFromNib方法中,在Xcode 4.3中一个简单的Cocoa应用程序中(在Lion下运行),将NSTextField设置为“第一响应者”(使用窗口的makeFirstResponder)。

重新引导后第一次加载应用程序时,makeFirstResponder可以正常工作,但每次重新运行时,焦点都设置为最后访问的字段。 (我曾尝试将窗口的initialFirstResponder出口连接到所需的NSTextField,但遇到了同样的问题)。

我最终通过从NSApplication委托中调用初始化函数并在此处放置makeFirstResponder调用来修复了它。

该修复程序有点混乱-我向控制器添加了全局变量,并将其初始化为awakeFromNib中的self。

我添加的信息是该应用程序的可可部分很简单,但其中大部分是从Windows移植的.cpp文件中的大量STL内容。

最佳答案

在IB中,为您的窗口取消选择属性检查器中的“可还原”复选框。当然,使用可恢复的窗口时,您将不会有其他行为,例如记住其位置和大小。

10-05 20:15