【发布时间】:2011-01-08 13:37:04
【问题描述】:
我的 NSTableView 工作正常,除非我正在编辑其中一个表格项。如果用户仍处于编辑模式,并且按下 Sheet OK 按钮,则 tableiew 不会更新。
当用户按下确定按钮(closesheet)时,如何强制 tableview 提交更改。
另外,如何使用ESC键取消编辑?
对不起,如果问题看起来很荒谬,但我只在 Mac 上开发了一个月。
【问题讨论】:
标签: cocoa macos nstableview
我的 NSTableView 工作正常,除非我正在编辑其中一个表格项。如果用户仍处于编辑模式,并且按下 Sheet OK 按钮,则 tableiew 不会更新。
当用户按下确定按钮(closesheet)时,如何强制 tableview 提交更改。
另外,如何使用ESC键取消编辑?
对不起,如果问题看起来很荒谬,但我只在 Mac 上开发了一个月。
【问题讨论】:
标签: cocoa macos nstableview
您应该可以调用[sheet makeFirstResponder:sheet],其中sheet 是您即将关闭的工作表。这会将第一响应者的状态从文本字段中切换出来,这将导致它提交正在进行的编辑。
【讨论】:
似乎有不同的解决方案。如果您使用绑定将编辑表的 NSTextField 连接到 ArrayController,则可以在 Interface Builder 的 TextFields 值绑定中选中“持续更新值”。
Red Sweater 博客的这篇博文对其他解决方案进行了很好的解释:http://www.red-sweater.com/blog/229/stay-responsive
【讨论】: