的應用程序的代碼是在這裏(該Raiseman文件夾包含項目的文件):基於文檔的應用程序:哪個是關鍵窗口?
每個文件(?窗口)包含NSTableView和兩個按鈕:
該應用程序使用ArrayController來管理Document類中的一個Employees數組,並且這些按鈕從數組中添加或刪除Employees。
我注意到,如果我點擊添加員工按鈕並開始編輯NSTableView中的員工姓名,然後點擊返回結束編輯,如果我點擊文件>新建創建第二個文檔,然後點擊添加第二份單據中的員工,然後編輯員工姓名並按回車鍵,返回鍵被髮送到第一份單據,該單據在第一單據中結束了對該單位名稱的編輯,而第二單據中沒有任何更改。這是爲什麼?我期望包含我點擊的按鈕的窗口成爲關鍵窗口,因此返回鍵將被髮送到第二個窗口。
如果我再次點擊Return,則編輯在第二個Document中結束。
你是否用自己的代碼開始編輯第一個窗口? –
@ AminNegm-Awad,是的。 Add Employee按鈕連接到Document類中的addEmployee(_ :)'動作,並且在動作內部是方法調用'tableView.editColumn(_ :, row :, withEvent :, select:)',其中' tableView'是NSTableView的出口。 – 7stud