Я хотел бы изменить указатель мыши, когда он входит в область PDF-аннотации текущей страницы. Я пробовал следующий код, но он не работает.
override func mouseEntered(with event: NSEvent)
{
let locationOnPDFView = self.convert(event.locationInWindow, from: self)
let locationOnPage = self.convert(locationOnPDFView, to: self.currentPage!)
for each in arrayOfImageAnnotations
{
if each.bounds.contains(locationOnPage)
{
NSCursor.pointingHand.set()
break
}
else
{
NSCursor.arrow.set()
}
}
}
Обновление
Я обнаружил, что проблема не в этом коде. После добавления pdfannotation на pdf-страницу положение (.bounds) этого pdf-примечания отличается от того, что вы видите на pdf-странице. Таким образом, если указатель мыши на изображении, форма указателя не меняется. Положение (.bounds) pdfannotation смещается, и когда указатель мыши на этом свободном от изображения месте, форма указателя мыши изменяется, как и ожидалось. Но почему .pdfannotation не в том месте, где изображение видно?
Я использую следующий код для добавления pdfannotation:
@IBAction func addImageAnnotationToPDFview(_ sender: AnyObject)
{
let currentPDFpage = myViewPDF.currentPage
let pageBounds = currentPDFpage!.bounds(for: PDFDisplayBox.trimBox)
let image = imageViewForPDF.image
let imageBounds = CGRect(x: pageBounds.midX - (image!.size.width / CGFloat(2.0)) , y: pageBounds.midY - (image!.size.height / CGFloat(2.0)), width: image!.size.width, height: image!.size.height)
if #available(OSX 10.13, *)
{
let imageForPDFAnnotation = PDFannotationImage(image: image!, bounds: imageBounds, forType: PDFAnnotationSubtype.stamp, withProperties: nil)
currentPDFpage!.addAnnotation(imageForPDFAnnotation)
arrayOfImageAnnotations.append(imageForPDFAnnotation)
myViewPDF.arrayOfImageAnnotations = arrayOfImageAnnotations
}