在我询问与OSX相关的问题之前,请允许我描述MS Windows中的一项功能。
如果我在MS Visual Studio中创建一个Windows应用程序,其中应用程序包含一个简单的DataGrid,用户只需单击一个单元格,编辑内容并使用键盘向上/向下箭头键快速移出单元格到下一个。键入单元格会触发EndEdit事件。使用向上/向下箭头键,用户可以快速向下移动列编辑值,而无需按Enter键或使用鼠标。
我正在尝试用OSX XCode / Swift做同样的事情。使用鼠标单击进入单元格并编辑是没有问题的。但似乎我必须单击两次单元格才能将其选中进行编辑,然后在编辑后我必须按Enter键或单击另一个单元格。我不能简单地使用向上/向下箭头键来键出单元格。
这就是OSX的工作方式吗?我的意思是我正在制作一个OSX应用程序,所以我希望它的行为就像一个本机应用程序,但它似乎需要很多输入和点击,例如,如果用户要编辑几个单元格。
我需要在ViewBased TableView中设置任何属性吗?
很抱歉这封长电子邮件 - 我希望我已经解释过了。
由于 伊恩
答案 0 :(得分:0)
经过多次努力,我得到的东西似乎完全符合我的要求。
myTableView位于NSViewController上。 在NSViewController的viewDidLoad()中,我得到了这个:
super.viewDidLoad();
NSEvent.addLocalMonitorForEventsMatchingMask(NSEventMask.KeyDownMask, handler:{
(event: NSEvent) in
self.myTableView.keyDown(event);
switch(event.keyCode)
{
case 36:
return nil;
case 125:
return nil;
case 126:
return nil;
default:
return event;
}
})
我必须承认我并非100%确定,但我的想法是,tableView的默认行为是用于向上/向下箭头键来向上或向下移动行选择,但这并不是&#39 ; t正在编辑单元格时发生。当文本单元具有编辑焦点时,向上/向下键只需将光标移动到单元格的开始/结束(即将光标移动到单元格内)。不是我想要的行为,所以我想如果我可以吞下(制作零)单元格中的那些事件,那么箭头按键会冒泡到tableview,它会进行上/下行选择 - 如果你看到我的意思。 / p>
无论如何 - 无论我的想法在哪里 - 这似乎完全符合我的要求,当编辑焦点到达下一个单元格时,它会立即进行编辑焦点。基本上就像在excel和数字等程序中一样工作。