ryt*_*tis 7 user-interface cocoa first-responder
我有一个简单的表单(NSWindow),有3个文本字段.NSWindow initialFirstResponder正在"指向"第一个字段(NSTextField).所有三个文本字段通过循环链接nextKeyView.
我遇到的问题是,当我从Xcode启动应用程序时,它将关注应用程序关闭时最后一个活动(焦点)的文本字段.
例如,如果我将文本字段命名为A,B和C并initialFirstResponder设置为A.现在,如果我启动应用程序,关注B,并关闭应用程序,下次启动时,焦点将放在B.
为什么这样,我将如何解决这个问题?
(对不起,如果这是一个微不足道的问题,这些是我在可可的第一步......)
编辑:
这是在OS X Lion 10.7.1,Xcode 4.1上.
编辑2:
我找到了一种方法来"修复"这个...在主窗口(或任何窗口)XIB/NIB文件中,单击"属性检查器",然后取消选中"可恢复"框.现在,应用程序将不会存储最后一个位置,因此initialFirstResponder视线将得到尊重并相应地遵循.
欢迎来到可可!:)我怀疑这是OS X Lion中新用户界面保存功能的一部分.(事实上,我刚刚创建了一个包含3个文本字段的简单应用程序,我也看到了这种行为.)因为windows会自动恢复,所以即使你没有实现它,你也会看到很多这种行为自动发生.这可能是可取的 - 大多数应用程序将以这种方式工作,并且用户将期望它.
但是,如果你真的想要禁用它,你可以通过继承NSWindow或NSTextField并覆盖它来实现-encodeRestorableStateWithCoder:.但是,我绝对建议你单独保留默认行为.
使用更多信息进行编辑:应用程序状态似乎存储在~/Library/Saved Application State/com.yourapp.savedState.在那里,您可以看到包含有关窗口信息的plist文件.其他文件似乎不易读取,但它们可能包含有关哪个字段是第一响应者的信息等.
| 归档时间: |
|
| 查看次数: |
2058 次 |
| 最近记录: |