有沒有辦法將NSArrayController
的內容數組綁定到非技術上不是數組的自定義對象,但其行爲如同一個?將NSArrayController的內容數組綁定到一個自定義(非數組)對象
具體而言,我試圖將NSTableView
綁定到PDFDocument
(因此,該表中的每行爲PDFPage
)。 PDFDocument
不是數組,但有許多相同類型的方法(如insertPage:atIndex:
,removePageAtIndex:
等)。
我最終想寫一個包裝,將PDFDocument
的方法轉換爲NSMutableArray
的方法,但我不確定要採取什麼方法。我做了一些嘗試,綁定似乎不能正常工作。
或者更具體地說,將表綁定到PDFDocument
的頁面以模仿PDFThumbnailView
(對於那些瞭解PDFKit的人)的任何方式?
謝謝!
非常感謝這麼一個徹底的答案 - 令人難以置信。我確實試圖通過綁定來改變'PDFDocument',這就解釋了爲什麼它不起作用。子類的想法聽起來像是首先嚐試的最佳方法。再次感謝你的幫助。 –
如果您試圖讓綁定變更文檔,那麼您需要實現索引集合變異訪問器:'-insertObject:inPagesAtIndex:'或'-insertPages:atIndexes:'和'-removeObjectFromPagesAtIndex之一:'或'-removePagesAtIndexes:'。那些可以調用不符合KVC或KVO預期的超類方法。如果你實現了這些,你不必也不應該調用'-willChange ...'或'-didChange ...'。這是因爲KVO已經知道要掛鉤這些方法來自動生成更改通知。這可以通過一個類別完成。 –