2016-03-25 17 views
0

Ich habe CorePlot 2.0 in meiner Mac-Anwendung installiert, und ich habe eine CPTLegend zu meinem CPTXYGraph -Objekt hinzugefügt, aber die legendTitleForPieChart-Methode wird nie aufgerufen. Wie lege ich die Legendentitel für jedes Diagramm fest?CorePlot 2.0 Legenden

Offensichtlich habe ich den meisten anderen Code in dieser Datei ausgeschnitten.

import Cocoa 
import CorePlot 

class ReportYearProducerProductionViewController: NSViewController { 
    @IBOutlet private weak var hostingView: CPTGraphHostingView! 

    private func configureChart() { 
     let pieChart = CPTPieChart() 
     pieChart.dataSource = self 

     hostingView.hostedGraph!.addPlot(pieChart) 
    } 
} 

extension ReportYearProducerProductionViewController: CPTPieChartDataSource { 
    func legendTitleForPieChart(pieChart: CPTPieChart, recordIndex idx: UInt) -> String? { 
     return "Title \(idx)" 
    } 
} 
+0

Zeichnet das Tortendiagramm ansonsten korrekt (d. H. Werden die anderen Datenquellenmethoden genannt)? Ich habe versucht, Ihre 'legendTitleForPieChart()' Funktion wörtlich in einer der Beispiel-Apps und es hat gut funktioniert. –

+0

Ja, es ruft die anderen Datenquellenmethoden auf, und der Kuchen zeichnet ordnungsgemäß. – Gargoyle

+0

Ist die Legende sichtbar? Wann erstellen Sie die Legende und fügen sie dem Diagramm hinzu? –

Antwort

0

Sie erstellen die Legende, bevor der Graph Plots enthält. Da der Legende keine Plots zugeordnet sind, kann der Plot nicht nach dem Titel gefragt werden.

Erstellen Sie entweder die Legende (CPTLegend(graph: graph)), nachdem Sie die Diagramme zum Diagramm hinzugefügt haben, oder fügen Sie die Diagramme dem Diagramm und der Legende hinzu, wenn Sie sie erstellen.