Πώς μπορώ να διατηρήσω ένα NSPathControl ενημερώνεται με τη διαδρομή του επιλεγμένου κελιού σε ένα NSBrowser

ψήφοι
5

Θα πρέπει να κρατήσει ένα NSPathControl ενημερωμένο με την τρέχουσα επιλεγμένη διαδρομή σε ένα NSBrowser, αλλά είμαι έχοντας πρόβλημα υπολογίζοντας έναν τρόπο να λαμβάνετε ειδοποιήσεις όταν η διαδρομή έχει αλλάξει από την NSBrowser. Ο ιδανικός τρόπος για να γίνει αυτό θα ήταν απλά να είναι να παρατηρήσουμε την πορεία κλειδί διαδρομή στο NSBrowser, αλλά αυτό δίνει μια κνθ να παρατηρήσουμε μόνο σύνολο <key>μεθόδων που επιστρέφουν κενό μήνυμα και δεν ενημερώσεις (setPath επιστρέφει μια τιμή επιτυχία bool).

Προσπάθησα, επίσης, παρατηρώντας το πλήκτρο πορεία selectedCell, αλλά δεν είμαι λαμβάνετε ειδοποιήσεις όταν η επιλογή δεν έχει αλλάξει.

Υπάρχει κάποιο άλλο πραγματικά προφανής τρόπος για να γίνει αυτό που είμαι λείπει εκεί;

Δημοσιεύθηκε 10/12/2008 στις 00:47
πηγή χρήστη
Σε άλλες γλώσσες...                            


3 απαντήσεις

ψήφοι
7

Ευγενική προσφορά του Rob Keniger πάνω σε κακάο Dev :

Έχετε εξετάσει το παράδειγμα SimpleBrowser στο / Developer / Παραδείγματα; Δείχνει πώς να πάρει την τρέχουσα επιλογή όταν αλλάζει ο χρήστης, ουσιαστικά μόνο από τη σύσταση της δράσης του NSBrowser.

Αυτός είναι πράγματι ο τρόπος για να το κάνουμε. Απλά εφαρμόσει - (κενό) broswerClicked: Μέθοδος (συμπεριλαμβανομένης της χαρτογράφησης είναι σε οικοδόμος διεπαφή) με ό, τι θέλετε να συμβεί κάθε φορά που αλλάζει η επιλογή μέσα σε αυτή τη μέθοδο, π.χ.

- (void)browserClicked:(id)browser {
    self.pathToSelectedCell = [browser path]; // NSPathControl is bound to pathToSelectedCell
}
Απαντήθηκε 10/12/2008 στις 04:28
πηγή χρήστη

ψήφοι
0

Από 10.6, μπορεί κανείς να μάθετε ποια στοιχεία είναι επιλεγμένα, με τη χρήση της επανάκλησης εκπρόσωπο ως εξής:

- (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
}
Απαντήθηκε 06/03/2013 στις 19:43
πηγή χρήστη

ψήφοι
0

Απλά ελεγχθεί ΙΒ, και μοιάζει NSBrowser έχει ένα δείκτη επιλογής διαδρομών δέσμευσης (μια σειρά από NSIndexPath αντικειμένων) που θα μπορούσε ενδεχομένως να παρακολουθεί με κνθ. Είναι περίεργο, αλλά εγώ δεν βλέπω καμία αναφορά ότι στα έγγραφα, οπότε ίσως χρειαστεί να κάνετε μια μικρή έρευνα για να δούμε αν αυτό είναι κάτι που πρέπει ή δεν πρέπει να χρησιμοποιούν, ακόμη και αν φαίνεται να δουλεύει. Αν το κάνει, με τη μέθοδο σας παρατήρηση κνθ θα βρείτε την τρέχουσα πορεία του προγράμματος περιήγησης, και να μετατρέψει αυτό σε ένα NSURL ο έλεγχος διαδρομή μπορεί να χρησιμοποιήσει.

Εάν αυτό δεν λειτουργήσει, υπάρχει επίσης οι μέθοδοι εκπρόσωπος - (BOOL)browser:(NSBrowser *)sender selectRow:(NSInteger)row inColumn:(NSInteger)columnκαι - (BOOL)browser:(NSBrowser *)sender selectCellWithString:(NSString *)title inColumn:(NSInteger)column.

Απαντήθηκε 10/12/2008 στις 01:03
πηγή χρήστη

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