2

NSTextView作成中のカスタム NSPanel を編集できないようです。

- (id) initWithPoint:(CGPoint)point andAnnotation:(PDFAnnotationText*)annotation {
    if (!(self = [super init]))
        return self;

    if (self.annotationPanelWindow == NULL)
        [NSBundle loadNibNamed: @"IBNoteAnnotationEditPanel" owner:self];

    selectedAnnotation = annotation;

    CGRect frame = self.annotationPanelWindow.frame;
    frame.origin = point;
    [self.annotationPanelWindow setFrame:frame display:YES animate:NO];
    [self.annotationPanelView setHidden:NO];
    [self.annotationPanelWindow orderFront:self];

    //[self makeFirstResponder:self.textView];
    [self.textView setString:annotation.contents];
    return self;
}

ビューはクリックも編集もできません。代わりに、テキストビューをクリックすると、カスタム パネルの背後にあるビューを操作できるようです。ただし、このカスタム パネル内の他のボタンとビューは期待どおりに機能します。

これはヘッダー ファイルです。

@property (strong) IBOutlet NSPanel *annotationPanelWindow;
@property (strong) IBOutlet NSView *annotationPanelView;
@property (strong) IBOutlet NSTextView *textView;

- (id) initWithPoint:(CGPoint)point andAnnotation:(PDFAnnotationText*)annotation;

これは、パネルを作成/開くために使用するコードです。

-(void)showNoteAnnotationEditPanel
{
    CGPoint point = _activeAnnotation.bounds.origin;
    point = [self convertPoint:point fromPage:_activeAnnotation.page];
    point = [self convertPoint:point toView:nil];
    self.noteAnnotationEditPanel = [[IBNoteAnnotationEditPanel alloc] initWithPoint:point andAnnotation:(PDFAnnotationText*)_activeAnnotation];
}
4

0 に答える 0