2010-09-09 74 views
0

我有一个NSTableView,允许在其中一个单元格(NSTextFieldCell)上进行内联编辑。这实际上运行良好,但重点是:我想操纵编辑会话的内容。 假设有一个带有路径的字符串(比如说:“folder/subfolder/myfile.txt”)作为这种单元格的内容。但是当用户进入这个单元格的编辑模式时(例如双击),我只希望字符串“myfile.txt”是可编辑的(即出现在编辑器中)。在编辑之前更改NSTableView中的单元格内容

有没有人对我有暗示?

感谢您的阅读。 Regards, Tobi

回答

1

您可以创建一个自定义NSFormatter这样做。覆盖方法stringForObjectValue:以返回完整字符串,并且editingStringForObjectValue:仅返回您想要编辑的部分。您还需要编写一个方法getObjectValue:forString:errorDescription:将编辑后的字符串转换回完整的字符串。如何确切地做到这一点取决于你的程序的其余部分。你以某种方式需要取回你删除的字符串的一部分进行编辑。

+0

谢谢你的回答,斯文!我已经尝试过使用NSFormatter,但目前还没有运气。问题是,当你将NSFormatter连接到NSCell时,它不会影响编辑textField。所以字符串在“正常”查看时很好地显示(格式化),但只要进入编辑模式,负责任的NSTextView/FieldEditor就不会关心格式化程序(为此我没有找到一种方法来连接到FieldEditor)... – Tobidobi 2010-09-10 08:53:49

+0

然后你必须在格式化程序中做错了什么。如果将它附加到表格视图的NSTextCell中,它将用于显示和编辑,不需要将其附加到字段编辑器。它也不能附加到字段编辑器,因为只有'NSCells'具有格式化程序。 – Sven 2010-09-10 10:41:06

相关问题