Change cell content in NSTableView before editing
I have an NSTableView
that allows inline editing on one of its cells (NSTextFieldCell
). This actually works well, but I want to manipulate the content for the editing session.
Imagine having a string with a pat开发者_如何学编程h (say: "folder/subfolder/myfile.txt") as the content of such a cell. But when the user enters edit mode for this cell (e.g. by double clicking) I want only the string "myfile.txt" to be editable (i.e. to appear in the editor). How can I achieve this?
You could create a custom NSFormatter
that does this. Override the method stringForObjectValue:
to return the full string and editingStringForObjectValue:
to return only the part you want to edit. You also need to write a method getObjectValue:forString:errorDescription:
to transform the edited string back to the complete string. How to exactly do this depends on the rest of your program. You somehow need to get back the part of the string you removed for editing.
精彩评论