2009-12-11 81 views
0

我試圖手動組裝一個NSTextView,就像蘋果的TextSizingExample一樣,發現了一個無聊的bug。如果您運行TextSizingExample並選擇「Wrapping Scrolling Text」模式,那麼您將看到文本被垂直滾動條部分隱藏。試圖玩的文本容器和文本視圖的大小和自動調整掩碼,但它沒有幫助。Handwired NSTextView剪輯錯誤

回答

1

問題在於VerticalScrollAspect類的創建滾動視圖的幼稚方法。在-containerView方法,有以下線路:

scrollView = [[NSScrollView alloc] initWithFrame:[documentView frame]];

不幸的是,這並不佔垂直滾動條的寬度或滾動視圖的邊框樣式,這兩者都是重要的考慮。

+0

謝謝,約書亞,它幫助。 – Indoor 2009-12-11 15:50:56

0

您正在處理三個組件:包含窗口或視圖,scrollview和scrollview內的textview。應該初始化滾動視圖以適應要顯示的視圖或窗口的框架或邊界,文本視圖只需要知道滾動視圖的內容區域位於何處。因此:

NSScrollView *scrollView = [[[NSScrollView alloc] initWithFrame:[containingView bounds]] autorelease]; 

NSSize contentSize = [scrollView contentSize]; 
NSTextView *textView = [[[NSTextView alloc] initWithFrame:NSMakeRect(0, 
           0, 
           contentSize.width, 
           contentSize.height) 
      ] autorelease]; 
+0

儘管確實如此,但這並不能解決OP所關注的演示問題。在演示中,創建這些嵌套視圖的順序被設置爲使得滾動視圖(天真地)爲文本視圖而不是其他方式。 – 2009-12-12 18:29:31