基于文档的应用:哪个是关键窗口?

时间:2015-08-28 04:43:26

标签: swift cocoa xcode6

应用程序的代码在这里(Raiseman文件夹包含项目的文件):

https://github.com/bignerdranch/cocoa-programming-for-osx-5e/tree/master/Chapter%2011%20-%20Undo/RaiseMan

每个文档(窗口?)包含一个NSTableView和两个按钮:

enter image description here

该应用程序使用ArrayController管理Document类中的Employees数组,按钮在数组中添加或删除Employees。

我注意到如果单击Add Employee按钮并开始在NSTableView中编辑Employee的名称,然后在点击Return to end editing之前,如果我点击File> New来创建第二个Document,那么点击Add Employee在第二个Document中,然后编辑Employee的名称并单击Return,Return键将被发送到第一个Document,这将结束第一个Document中Employee名称的编辑,而第二个Document中没有任何变化。这是为什么?我希望包含我点击的按钮的窗口是关键窗口,因此返回键将被发送到第二个窗口。

如果我再次点击Return,则编辑在第二个Document中结束。

1 个答案:

答案 0 :(得分:0)

对我来说看起来像个错误。 NSTableRowData对象正在观察所有对象的NSControlTextDidEndEditingNotification,包括其他窗口中的视图。