我有一個基於視圖短信NSTableView的簡單的聊天應用程序,你可以看到下面的圖片。 每個消息都包含NSTextView實例,該實例具有適合所有文本的高度。如何調用NSScrollView自動滾屏,方法程序
所有我需要的是啓動NSScrollView(其中NSTableView的實例是由附後)自動滾動,而用戶選擇文本拖動鼠標遠遠不夠。不幸的是,自動滾動不會出現。如果在文本視圖之外的某處拖動都會成功。
席力圖召autoscroll:
- 方法直接通過簡單地從NSTextView
-subclass推NSEvent
-instance「鼠標拖動」 -event(例如像從this article):
- (void)mouseDragged:(NSEvent *)event
{
[self.scrollView autoscroll:event];
}
正如我壓倒一切鼠標事件並實現所有文本選擇,這個方法通常會調用。但自動滾動似乎不起作用。
UPDATE
我想通了,打電話-autoscroll:
之前 - 方法必須有同一對象的-mouseDown:
。但它打破了我的文本選擇機制。即使不是第一響應者,也只有mouseDown:
-方法。
如果你是說用NSScrollView內一個NSTableView和NSTableView的行是多行,小區內選擇文本,並拖累滾動視圖的底部之下時,不滾動?如果是這樣,該功能由NSScrollView自動提供,選擇時不需要滾動。爲了測試,我創建了一個新項目,添加了NSScrollView(NSTableView),將行高設置爲大於滾動視圖並填充tableview。點擊文字,然後選擇向下滾動瀏覽的底部。它自動滾動。 – Jay
@Jay我需要啓動NSTableView滾動視圖自動滾動,而不是文本視圖的一個(文本視圖的高度足以適應文本)。 – Astoria
我不確定你在問什麼。假設你從對象庫中將NSTableView吸收到Xcode的窗口中,NSTableView將被NSScrollview包圍。如果您嘗試通過在文本所在的行中單擊鼠標並向下拖動(這是它從屏幕快照中顯示的方式)來選擇表格視圖中某一行中的文本,則封閉的NScrollView會自動處理它,並向上滾動你可以繼續選擇文本 – Jay