我有一个NSTableView,除了当我编辑其中一个表项时,它都能正常工作。如果用户仍处于编辑模式,并按下Sheet OK按钮,则tableview不会更新。
当用户按下OK按钮(关闭sheet)时,如何强制tableview提交更改?
另外,如何处理ESC键以取消编辑?
对不起,如果问题看起来荒谬,但我只在Mac上开发了一个月。
我有一个NSTableView,除了当我编辑其中一个表项时,它都能正常工作。如果用户仍处于编辑模式,并按下Sheet OK按钮,则tableview不会更新。
当用户按下OK按钮(关闭sheet)时,如何强制tableview提交更改?
另外,如何处理ESC键以取消编辑?
对不起,如果问题看起来荒谬,但我只在Mac上开发了一个月。
你应该能够调用[sheet makeFirstResponder:sheet]
,其中sheet
是你即将关闭的表单。这将使第一响应者状态从文本字段切换,从而导致它提交正在进行的编辑。
我曾经遇到过同样的问题:如何在编辑文本框后无需按下 Return 或 Tab 键即可将数据添加到 Core Data 属性中?
似乎有不同的解决方案。如果您使用绑定将编辑表单的 NSTextField 连接到 ArrayController,则可以在 Interface Builder 中的 TextFields 值绑定中检查“连续更新值”。
其他解决方案在 Red Sweater Blog 的这篇博客文章中也有很好的解释:http://www.red-sweater.com/blog/229/stay-responsive