2011-11-27 61 views
4

通用NSPasteboard存儲用戶已複製的內容。例如,像100個圖像和1000個單詞。是否有一般NSPasteboard的大小限制,以便用戶可以複製說..最多99圖像?一般NSPasteboard佔用多少內存?

什麼定義了這個限制?內存或高清或..?

回答

4

是的。

在粘貼板的大小上沒有記錄強制限制(我可以找到)。但是,一切都是有限的。如果您將過多的東西複製到任何粘貼板(無論是通用粘貼板,查找粘貼板,拖動粘貼板還是其他任何東西),您都可能遇到無證限制,或者導致系統進入分頁。 (即使最後一部分也沒有保證;上次檢查時,粘貼板使用RAM,但理論上現在或將來都可以寫入磁盤。)

如果您計劃複製大量的數據,我建議代之以承諾。如何做到這一點取決於您是使用舊的基於類型和數據的API,還是使用較新的基於項目的API。這是更多的工作,但這意味着只有當用戶將其粘貼到某個位置時才需要輸入數據。

+0

+1有希望。 – spudwaffle

+4

只是爲了澄清,有希望的意思是,不是立即將數據發送到粘貼板,而是發送承諾,在實際需要時(例如,當用戶實際使用粘貼命令時)發送數據。一般來說,當您的應用程序將退出時,您還需要提供數據,但如果數據非常大,您可以提示用戶查看是否要放棄粘貼板,這正是Photoshop所做的。 –

+1

爲了澄清,我並沒有聲稱Photoshop是用戶交互設計(!)的典範,但它確實能夠正確處理非常大的剪貼板內容。 –