受密码保护的 pdf 上看不到密码字段

Password field not visible on password protected pdf

我正在使用 PDF 套件框架来 display/Edit pdf 文件。它在 macOS 10.12 上严重损坏。有时受密码保护的文件不显示密码字段,有时密码字段在普通文件中可见。

我可以使用未记录的 API 解决此问题。它的问题与 hide/unhide 密码查看有关。

/*
 From class dump of pdf kit
 @interface PDFPasswordViewController : NSViewController
 {
 NSTextField *_passwordField;
 NSTextField *_passwordPrompt;
 NSTextField *_passwordInstruction;
 NSView *_passwordView;
 PDFView *_pdfView;
 }

 - (void).cxx_destruct;
 - (void)_commonInit;
 - (void)passwordEntered:(id)arg1;
 - (void)setPDFView:(id)arg1;
 - (void)loadView;

 @end
 */

/*
 @private
 PDFViewPrivate* _private;
 Available in PDFView.h file
 */
id PDFViewPrivate = [self.pdfView valueForKey:@"_private"];
if (PDFViewPrivate)
{
    NSViewController *passwordViewController = [PDFViewPrivate valueForKey:@"passwordViewController"];
    NSView *passwordView = [passwordViewController valueForKey:@"_passwordView"];
    if (self.pdfView.document.isLocked)
    {
        NSTextField *passwordField = [passwordViewController valueForKey:@"_passwordField"];
        // Reset last password
        [passwordField setStringValue:@""];
        // Add password view
        passwordView.hidden = NO;
    }
    else
    {
        passwordView.hidden = YES;
    }
}

PDFPasswordViewController 仅适用于 10.12