Skip to content

Commit df71fce

Browse files
committed
Make virtualised tableview use EditorView as default scrollview if not provided via delegatre
1 parent b8d59a2 commit df71fce

File tree

3 files changed

+13
-5
lines changed

3 files changed

+13
-5
lines changed

Diff for: ExampleApp/ExampleApp/AdvancedFeatures/CommandsExampleViewController.swift

+2-1
Original file line numberDiff line numberDiff line change
@@ -492,7 +492,8 @@ extension CommandsExampleViewController: TableViewDelegate {
492492
}
493493

494494
var containerScrollView: UIScrollView? {
495-
editor.scrollView
495+
nil
496+
// editor.scrollView
496497
}
497498

498499
func tableView(_ tableView: TableView, didReceiveKey key: EditorKey, at range: NSRange, in cell: TableCell) { }

Diff for: Proton/Sources/Swift/Table/TableView.swift

+10-3
Original file line numberDiff line numberDiff line change
@@ -392,8 +392,15 @@ public class TableView: UIView {
392392
}
393393
}
394394

395+
public override func didMoveToWindow() {
396+
guard window != nil,
397+
observation == nil else { return }
398+
399+
setupScrollObserver()
400+
}
401+
395402
private func setupScrollObserver() {
396-
observation = delegate?.containerScrollView?.observe(\.bounds, options: [.new, .old]) { [weak self] container, change in
403+
observation = self.containerScrollView?.observe(\.bounds, options: [.new, .old]) { [weak self] container, change in
397404
self?.viewportChanged()
398405
}
399406
}
@@ -438,7 +445,7 @@ public class TableView: UIView {
438445
// ensure editor is not hidden e.g. inside an Expand in collapsed state
439446
attachmentContentView.attachment?.containerEditorView?.isHidden == false,
440447
tableView.bounds != .zero,
441-
let containerScrollView = delegate?.containerScrollView,
448+
let containerScrollView = self.containerScrollView,
442449
let rootEditorView = containerAttachment?.containerEditorView?.rootEditor else {
443450
cellsInViewport = []
444451
return
@@ -812,7 +819,7 @@ extension TableView: UIScrollViewDelegate {
812819

813820
extension TableView: TableContentViewDelegate {
814821
var containerScrollView: UIScrollView? {
815-
delegate?.containerScrollView
822+
delegate?.containerScrollView ?? containerAttachment?.containerEditorView?.rootEditor.scrollView
816823
}
817824

818825
var viewport: CGRect? {

Diff for: Proton/Tests/Table/TableViewAttachmentSnapshotTests.swift

+1-1
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ class TableViewAttachmentSnapshotTests: SnapshotTestCase {
3434
delegate = MockTableViewDelegate()
3535
viewController = EditorTestViewController()
3636
editor = viewController.editor
37-
delegate.containerScrollView = editor.scrollView
37+
// Not setting delegate.containerScrollview expects the editor.scrollview as default scrollview
3838
}
3939

4040
func testRendersTableViewAttachment() {

0 commit comments

Comments
 (0)