2016-12-13 2 views
1

내 앱에서 일부 정보를 표시하는 단일 PDF보기가있는 창을 사용합니다.PDF가 정확하게 표시되지 않음

enter image description here

그러나 PDF 안에 다시 한 번 보여주는 때 시프트된다 : 윈도우가 먼저 표시 될 때 표시 괜찮다

enter image description here

창을 여는 코드는 다음이다 :

- (IBAction)viewClicked:(id)sender { 
    NSData* data = [NSData dataWithContentsOfFile:@"my.pdf"]; 
    pdf = [[PDFDocument alloc] initWithData:data]; 
    [_pdfWindow makeKeyAndOrderFront:self]; 
    _pdfView.document = pdf; 
} 

이것은 앱이 시작된 직후에 호출됩니다. 창은 빨간색 닫기 버튼으로 닫힙니다. 그 직후에 위의 viewClicked이 반복되고 이동 된 그림이 표시됩니다.

동일 스위프트에 발생합니다

@IBAction func viewClicked(_ sender: Any) { 
    let data = NSData(contentsOfFile:"my.pdf") 
    pdf = PDFDocument(data:data as! Data) 
    pdfWindow.makeKeyAndOrderFront(self) 
    pdfView.document = pdf 
} 

편집 하나 명 더 관찰 : 잘못된 표시 결과에서 발행 때에 직접 PDFView에 전파 커서를 오른쪽 :

enter image description here

이것은 PDF의 두 번째 페이지입니다.

편집 2 누구든지 관심이있는 경우 ObjC/Swift XCode 프로젝트를 첨부합니다. AppDelegate에서 PDF 파일 위치를 조정하면됩니다. Dropbox

+0

PDFKit in 10.12는 버그입니다. 관련없는 팁 :'[[PDFDocument alloc] initWithURL : myURL]'을 사용하십시오. – Willeke

+0

@Willeke 차이점을 만들지 않았다 :-( –

+0

Apple이 10.12에서 PDFKit을 정말로 망쳤습니다. 방금 출시 된 10.12.2 업데이트를 사용해보십시오. 적어도 PDFView 문제를 해결할 수있을 것 같습니다. – danielv

답변

1

그래, PDFView는 그렇게 짜증나. 새 문서를 지정하기 전에 PDFView의 문서를 nil로 설정하십시오.

_pdfView.document = nil; 
_pdfView.document = pdf; 

이렇게하면 재설정되어 문제가 해결됩니다.

또한 윈도우보기에서 needsDisplay를 설정할 필요가 없습니다.

+0

와우! needsDisplay는 내가 시도한 빨대 중 하나였습니다 .-) 감사합니다. 그게 당신에게 현상금을 줄거야 (가능한 한 21 시간 안에) –

+0

PDFKit은 * 정말 * 버기.페이징 (끝 오른쪽과 왼쪽에서 시작)에서 "무언가"로 끝나고 시작이 아닌 또 다른 문제를 발견했습니다. 사과, 사과. –

+0

4 페이지가 넘는 다중 페이지 PDF가 있습니다. 오른쪽/왼쪽에는 1과 2 대신 2 페이지 만 표시됩니다. Apple이 내 버그 보고서를 다룰 때이 주석을 읽는다면, (항상 그렇듯이) 당신이해야한다고 생각하는 것을하십시오. 해결 방법 : P –

관련 문제