contentsize and contentOffset equivalent in NSScroll view

前端 未结 3 890
北海茫月
北海茫月 2020-12-13 09:52

I am porting an app from Ipad to mac. (I know that it sounds weird)

I stuck with NSScrollview. Please guide me contentsize , contentOffset equivalent in NSScrollvi

相关标签:
3条回答
  • 2020-12-13 10:18

    Everything you need to know about NSScrollView is laid out in the Scroll View Programming Guide for Cocoa provided in the documentation.

    Although it doesn't appear that there's a direct equivalent, UIScrollView's contentSize can be likened to the size of NSScrollView's documentView, which is the scrollable content provided as an NSView to NSScrollView with setDocumentView:.

    setContentOffset: can be compared to NSView's scrollPoint:, which uses an NSPoint to specify the offset of the documentView within the NSScrollView.

    See the documentation for elaboration and code examples.

    0 讨论(0)
  • 2020-12-13 10:22
    UIScrollView* uiScroll;
    uiScroll.contentSize;
    uiScroll.contentOffset;
    uiScroll.contentSize = CGSizeMake(w,h);
    uiScroll.contentOffset = CGPointMake(x,y);
    

    =

    NSScrollView* nsScroll;
    nsScroll.documentView.frame.size;
    nsScroll.documentVisibleRect.origin;
    nsScroll.documentView.frameSize = NSMakeSize(w,h);
    [nsScroll.documentView scrollPoint:NSMakePoint(x,y)];
    

    Edit: modernized the syntax

    0 讨论(0)
  • 2020-12-13 10:22

    In addition to the lines from @aepryus, here are a couple more useful lines for getting/setting the scroll offset on macOS:

    //Get the current scroll offset:
    _contentViewOffset = scrollView.contentView.bounds.origin;
    
    //Set the scroll offset from the retrieved point:
    NSPoint scrollPoint = [scrollView.contentView convertPoint:_contentViewOffset toView:scrollView.documentView];
    [scrollView.documentView scrollPoint:scrollPoint];
    
    0 讨论(0)
提交回复
热议问题