2010-09-09 81 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

相關問題