NSTableViewDelegate选择和事件

时间:2015-01-24 22:42:59

标签: cocoa nstableview

我想知道您对与NSTableViewNSTextField相关的事件有点奇怪的行为的想法。在我的应用程序中,我有一个按钮,用于向我的NSTableView(基于单元格)添加新行。

如果我点击添加按钮, 调用-(void)tableViewSelectionDidChange:(NSNotification *)notification并添加新行,然后在该方法中手动调用[tableView editColumn:0 row:selectedRowIndex withEvent:nil select:YES]后进行关注/选择。

开始在该单元格中键入一些文本,将触发-void)controlTextDidBeginEditing:(NSNotification *)obj事件,但是如果我再次单击“添加按钮”,从而离开单元格 - 我希望触发的事件 -(void)controlTextDidEndEditing:(NSNotification *)obj实际上并非如此。

如果我不首先在单元格中开始输入任何内容,则行为会有所不同。

怎么回事?

1 个答案:

答案 0 :(得分:0)

如果选择另一个单元格或文本字段,将调用controlTextDidEndEditing,但在您的情况下,您需要强制文本字段以编程方式结束编辑。您可以使用:

[[textField window] makeFirstResponder:nil];

(即在addButton方法中)。它将结束编辑并从文本字段中删除焦点。