Sto lavorando alla mia prima applicazione basata su documenti Mac.NSDocumentController currentDocument restituito nil
ho sottoclasse NSDocument
, reimplementando metodi come
- (BOOL)readFromURL:(NSURL *)absoluteURL ofType:(NSString *)typeName error:(NSError **)outError;
- (BOOL)writeToURL:(NSURL *)absoluteURL ofType:(NSString *)typeName error:(NSError **)outError;
- (void)makeWindowControllers;
Il controllore finestra principale è una sottoclasse di NSWindowsController
, che contiene due NSViewController sottoclassi.
Il problema che sto affrontando è che ho bisogno di avere accesso al documento corrente da questi controller di vista. Quello che faccio è chiamare
MyDocument *myDocument = [[NSDocumentController sharedController] currentDocument];
In un primo momento, subito dopo l'avvio dell'applicazione, viene creato un nuovo documento. Quindi, vengono creati la finestra principale e i relativi controller di visualizzazione, ma il metodo sopra restituisce nil. Ecco il registro (utilizzando NSLog) ottengo:
Just created this new document: <MyDocument: 0x10040ff10>
I'm in a view controller and current document is (null)
Dopo di che, la creazione di un nuovo documento e chiamare questo metodo comporta un puntatore non nullo, ma non punta verso il documento giusto, ma al primo:
Just created this new document: <MyDocument: 0x100437e10>
I'm in a view controller and current document is <MyDocument: 0x10040ff10>
noti che dopo la seconda la creazione di documenti, currentDocument
punti al primo documento e non alla seconda.
Qualche idea di ciò che mi manca o che non funziona qui? Quando è impostato currentDocument
per NSDocumentController
?
Grazie, ma l'ho già provato e sto ancora ottenendo zero come risultato. Ero anche incerto su cosa significasse "non attivo" per Apple, ma nel mio caso accade subito dopo aver avviato l'app. Nessun drag-and-drop, niente di speciale. – msoler