2013-02-16 25 views
1

我的主窗口中有一個NSScrollView項目。每次啓動程序時,滾動視圖中都有文本,並從中心開始。用戶不應該從頂部開始閱讀,但爲什麼該應用會在中心啓動?謝謝!可可NSScrollView從中心開始

回答

2

如果您沒有正確設置視圖,就會發生這種情況。
以下是我擁有的信息: 1:使用Interface Builder設置視圖。
2:您正在使用NSTextView
3:您使用更改文本的代碼是:
[_chapterContent insertText:[圖書objectForKey:bookAndChapters];
4:當您使用NSTextView時,我們沒有處理由翻轉座標引起的問題。

我不確定是否應該爲此任務使用insertText。 至少,你可以使用這樣的事情...

range.location = 0; 
range.length = 0; 
[textView setSelectedRange:range]; 

...設置插入符的位置。

然後,您可以做一個...

[textView scrollRangeToVisible:range]; 

...如果你喜歡。

注意:您可以使用長度爲0的setSelectedRange和[textStorage length]內的任何位置來定位插入符。

- 請告訴我,如果這讓您需要更改。

我建議使用...

textStorage = [textView textStorage]; 
range.location = 0; 
range.length = [textStorage length]; 
if([self shouldChangeTextInRange:range replacementString:string]) 
{ 
    [textStorage beginEditing]; 
    [textStorage replaceCharactersInRange:range withAttributedString:attrStr]; 
    [textStorage endEditing];   
} 

...替換用屬性串的文本。 如果你不需要的屬性串,有可用的更簡單的方法:

[textStorage replaceCharactersInRange:range withString:str]; 

它的工作很適合我(和許多其他人的)很多年;這是改變NSTextView內容的推薦方式。 - 如果你只是想用一個字符串替換的全部內容,您可以使用

[textView setString:string]; 
+1

1)我將它設置UPS在Interface Builder 2)是的,NSTextView 3)_chapterContent insertText:[圖書objectForKey:bookAndChapters] ]。 4)setFlipped不起作用。感謝您的時間和精力! – user1927992 2013-02-16 13:23:44

+1

良好的信息。你是否檢查過NSScrollView和NSTextView(它在NSScrollView中)的定位標誌? - NSTextView應該固定在NSScrollView的各個方面,它應該是水平和垂直方向的靈活。 – 2013-02-21 09:50:44

+1

我發現我用的是InsertString而不是setString – user1927992 2013-02-21 15:11:41