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];
}