2015-10-07 90 views
2

我正在開發一個由兩個NSTextView對象組成的小OS X應用程序,每個應用程序都由NSScrollView包裝。同步兩個NSScrollViews

我跟着蘋果的Mac開發者資料庫(https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/NSScrollViewGuide/Articles/SynchroScroll.html

看來工作中提到...好步驟,至少當用戶手動滾動通過執行通常的滾動手勢。但是,當用戶在NSTextView中輸入大量文本時,同步滾動似乎不起作用,導致ScrollView向下滾動。

同步(因此偵聽)滾動視圖向下滾動片刻,然後跳回到文本視圖的頂部。

有沒有人有線索爲什麼會發生這種情況?

+0

快速測試工作(OS X 10.10)。你改變了什麼?哪些文字較高? – Willeke

+0

沒有文字更高。當我在第一個TextView中添加新行時,第二個(同步的)TextView會滾動回頂端 – Alex

回答

0

我找到了解決方案。

當以編程方式更改TextView(位於同步的ScrollView內)的字符串值時,問題似乎就會發生。

只要我更改了字符串值並且它可以工作,我就添加了一個類似[self synchronizedViewContentBoundsDidChange:nil];的調用。

當我現在添加新行到原始文本視圖導致滾動視圖向下滾動同步滾動視圖滾動正確。