2012-07-03 5 views
1

tutorial을 사용하는 iPhone 응용 프로그램을 Mac 응용 프로그램으로 이식하고 있습니다. NSScrollView에서 표시 할 텍스트를 가져올 수 있었지만 스크롤 할 텍스트를 얻을 수 없으며 누군가 내가 누락 된 것을 알고 있기를 바랍니다. 아이폰 응용 프로그램에서 NSScrollView가 스크롤되지 않습니다.

는 CTView는 CTView.h

있는 UIScrollView

에서 서브 클래스된다

@interface CTView : UIScrollView <UIScrollViewDelegate> { 

1) 그러나 AppKit의에는 NSScrollViewDelegate가 없습니다. NSScrollView에 대한 누락 된 대리자 인터페이스가 문제가 있습니까?

그래서 맥 앱, CTView.h처럼 보이는 다음

내가 CTView.m 내부

[self setHasHorizontalScroller:YES]; 
[self setAcceptsTouchEvents:YES]; 

또한이 CTView.m에서

@interface CTView : NSScrollView 

나는대로 프레임있는 NSMutableArray을 만들

self.frames = [NSMutableArray array]; 

프레임을 배열로 채우십시오. ,

[[self contentView] setFrame:[self bounds]]; 
[self.documentView setFrame: NSMakeRect(0, 0, totalPages * self.bounds.size.width, textFrame.size.height)]; 

첫 번째 프레임이 CTView에서 볼 수 있습니다,하지만 난 가로 스크롤 막대를 이동할 때 : 나는 또한으로 스크롤 할 수 있도록하려면 전체 큰 이미지를 문서보기에 대한 프레임을 설정 CTView에 두 번째 프레임이 나타나지 않습니다.

Xcode 4.3.3 및 Mac OS X 10.7.4를 사용하고 있습니다.

누구나 프레임을 스크롤 할 수 있도록 NSScrollView UIScrollView 다르게해야 할 일을 알고 있습니까?

답변

1

마지막으로 알아 냈습니다. 아휴!

1) NSScrollView는 documentView에 대한 뷰가 필요합니다. 여기서 documentView는 스크롤되는 뷰입니다. CTView.m

NSArray *viewArray  = [self subviews]; 
NSArray *docViewArray = [[viewArray objectAtIndex:0] subviews]; 
NSView *docView  = [docViewArray objectAtIndex:0]; 

[self setDocumentView:docView]; 

2 코드에 의해 표시되도록 펜촉에서 I는 그 다음 I 프레임의 배열을 첨가)을 documentView하는 도면을 포함하고보기에 documentView 기세 NSScrollView을 만들어, 그 것 일반적으로 NSScrollView의 documentView에 UIScrollView에 추가됩니다. 프레임 배열은 여러 요소의 내용으로 구성됩니다.

while (textPos < [attString length]) { 
    CTFrameRef frame = CTFramesetterCreateFrame(framesetter, CFRangeMake(textPos, 0), innerPath, NULL); 
    CFRange frameRange = CTFrameGetVisibleStringRange(frame); 

    CTColumnView* content = [[[CTColumnView alloc] initWithFrame: NSMakeRect(0, 0, self.contentSize.width, self.contentSize.height)] autorelease]; 
    [docView addSubview: content]; // <<-- Here is where the frames are added to the documentView 
    textPos += frameRange.length; 
    } 

그리고 그 트릭을했습니다.

+1

미래를위한 팁처럼 Apple 프레임 워크와 동일한 두 자리 접두어를 사용하지 않아야합니다! – JustSid

+0

나는 좌절감을 느낀다. 나는 그것을 얻을 수 없다. 나는 그려진 문맥을 보지만 그것을 스크롤 할 수 없다 :(. –

관련 문제