0

Ich versuche, den Knopf achive, die in jeder Zeile einer Tabelle platziert wird, und löscht diese Zeile, wenn sie in AppleScriptObjC gedrückt. Wie in Safari, wenn Sie die Download-Liste betrachten, gibt es neben dem Namen einer heruntergeladenen Datei eine kleine X-Schaltfläche.Löschtaste für jede Tabellenzeile in AppleScriptObjC

Ich kann nicht die Bindung der Löschmethode deleteRow_(sender) in einer app delegate mit Lösch-Taste, um zu arbeiten. Ich habe Array Controller, die die Tabelle füllt. Ich habe die Schaltfläche an die Methode gebunden, aber wenn Sie darauf klicken, passiert nichts. Ich habe versucht, das Argument jeder Taste an den eindeutigen Wert von data source zu binden und sein Ziel auf die app delegate selbst zu setzen, aber es macht die Schaltfläche transparent und unclickable.

Bitte helfen, wie kann ich es funktioniert AppleScriptObjC und Bindungen verwenden.

+0

Basiert die Tabellenansicht auf Zellen oder auf Zellen? – Willeke

+0

Es basiert auf Ansichten. – otakon

+0

Das Ziel der Aktion der Schaltfläche muss der Delegat der Tabellenansicht sein. – Willeke

Antwort

0

Dank @Willeke, bemerkte ich, dass es keine Delegierten für die Tabelle angegeben war. Die Tabelle wurde an eine Eigenschaft property tableName : missing value in einem Delegaten gebunden, aber nicht an den Ausgang delegate einer Tabelle.

Nach einem Delegaten für die Tabelle spezifiziert, wenn ich die Wirkung einer Taste auf die gleichen Delegierten als Tableview binden, funktioniert alles wie am Schnürchen. Jetzt

, wenn Aktion funktioniert der zweite Teil dieses Thema ist, wie die Zeilenindex oder eine andere Informationen zu erhalten, über die Taste I gedrückt haben? Ich habe versucht, Argument mit einem Wert aus einer dataSource zu füllen. Ich habe den Knopf an die table cell view mit objectValue.myValue als object key path gebunden und die Knopfzelle an table controller mit myValue von object key path gebunden. Ziel von beiden ist die Bindung an denselben Delegaten wie an die Tabelle. Aber all diese Einstellungen geben mir einen Fehler. Diese Bindung erfolgt auf die gleiche Weise, wie ich alle meine Objekte an die Tabelle anfülle.

+0

Wenn Sie die Aktion der Schaltfläche verbinden, kann die Zeile mit 'rowForView' von NSTableView abgerufen werden. Die Schaltfläche ist der Absender. Wenn Sie die Aktion über Bindungen verbinden, können Sie 'objectValue' als Argument verwenden und dieses Objekt verwenden oder in den Daten finden. – Willeke

+0

Es hat funktioniert! Danke nochmal @Willeke – otakon