Wie halte ich einen NSPathControl mit dem Pfad der ausgewählten Zelle aktualisiert in einem NSBrowser

stimmen
5

Ich brauche einen NSPathControl mit dem aktuell ausgewählten Pfad in einem NSBrowser aktuellen Stand zu halten, aber ich habe Probleme, die eine Art und Weise Benachrichtigungen zu bekommen , herauszufinden , wenn der Weg vom NSBrowser verändert hat. Der ideale Weg , dies zu tun wäre , nur um den Weg Schlüsselpfad in der NSBrowser zu beobachten, aber das gibt ein KVO kann nur Satz beobachtet <key>Methoden , die Leere Nachricht und kein Updates zurückkehren (SetPath gibt einen bool Erfolg Wert).

Ich habe auch versucht die selectedCell Schlüsselpfad zu beobachten, aber ich bin keine Benachrichtigungen erhalten, wenn die Auswahl dort geändert wird.

Gibt es irgendeinen anderen wirklich offensichtlichen Weg, dies zu tun, dass ich fehle?

Veröffentlicht am 10/12/2008 um 00:47
quelle vom benutzer
In anderen Sprachen...                            


3 antworten

stimmen
7

Mit freundlicher Genehmigung von Rob Keniger über bei Cocoa Dev :

Haben Sie sich das SimpleBrowser Beispiel in / Developer / Beispiele? Es zeigt, wie die aktuelle Auswahl erhalten, wenn es durch den Benutzer, im Grunde nur durch die Einrichtung der Wirkung des NSBrowser geändert wird.

Das ist in der Tat so, wie es zu tun. Nur implementieren ein - (void) broswerClicked: Methode (Abbildung es in Interface Builder einschließlich) mit dem, was Sie jedes Mal, wenn die Auswahl Änderungen innerhalb dieser Methode passieren sollen, zB

- (void)browserClicked:(id)browser {
    self.pathToSelectedCell = [browser path]; // NSPathControl is bound to pathToSelectedCell
}
Beantwortet am 10/12/2008 um 04:28
quelle vom benutzer

stimmen
0

Ab 10.6 kann man die Elemente ausgewählt werden, unter Verwendung der Delegierten Rückruf herauszufinden, wie folgt:

- (NSIndexSet *)browser:(NSBrowser *)browser selectionIndexesForProposedSelection:(NSIndexSet *)proposedSelectionIndexes inColumn:(NSInteger)column
{
    NSLog(@"New first item of the new selection is at index %@", [proposedSelectionIndexes firstIndex]);
    // Do something with the selected index or indicies
    return proposedSelectionIndexes; // Allow the selection to occur by not changing this
}
Beantwortet am 06/03/2013 um 19:43
quelle vom benutzer

stimmen
0

Ich habe gerade überprüft in IB, und es sieht aus wie NSBrowser Auswahlindex Pfade Bindung (ein Array von NSIndexPath Objekten), die Sie möglicherweise mit KVO überwachen könnten. Es ist seltsam, aber ich habe keine Erwähnung in der Dokumentation sehen, so dass Sie eine wenig Forschung tun könnten müssen, um zu sehen, ob das etwas ist, sollten Sie oder nicht verwenden sollen, auch wenn es scheint zu funktionieren. Ist dies der Fall, in der KVO Beobachtungsmethode würden Sie den Browser des aktuellen Pfad finden, und konvertieren, das zu einem NSURL des Steuerpfad verwenden kann.

Wenn das nicht dort arbeiten ist auch die Delegatmethoden - (BOOL)browser:(NSBrowser *)sender selectRow:(NSInteger)row inColumn:(NSInteger)columnund - (BOOL)browser:(NSBrowser *)sender selectCellWithString:(NSString *)title inColumn:(NSInteger)column.

Beantwortet am 10/12/2008 um 01:03
quelle vom benutzer

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more