Domanda

Ecco il mio codice finora (nel rect sorteggio):

// Drawing code here.
NSLog(@"%@", [[NSBundle mainBundle] pathForResource:@"NoiseBGMainView" ofType:@"jpg"]);
NSURL *pathToBGImage = [[NSURL alloc] initWithString:[[NSBundle mainBundle] pathForResource:@"NoiseBGMainView" ofType:@"jpg"]];
NSImage *NoiseBGMainView = [[NSImage alloc] initWithContentsOfURL:pathToBGImage];
[NoiseBGMainView drawInRect:[self bounds] fromRect:NSZeroRect operation:NSCompositeSourceOver fraction:1];

E l'immagine non disegnare ... Non so cosa c'è di sbagliato.

È stato utile?

Soluzione

Perché non usare [NSImage imageNamed:@"NoiseBGMainView.jpg"] invece? Che vi darà una NSImage della tua foto (se può trovarlo), e nil se non si può. NSLog quali sono i risultati di quella chiamata sono, poi vieni a riferire su se sta accedendo (null) oppure no.

Altri suggerimenti

È possibile disegnare un NSImage in un NSView senza scrivere alcun codice di disegno collegando un NSImageView per la visualizzazione e impostare il tuo risorsa immagine come immagine del NSImageView. (NSImageView gestisce tutto il disegno).

Se la vostra abitudine NSView viene caricato da un pennino, non è necessario alcun codice di impostazione sia -. Basta effettuare i collegamenti appropriati NSView-NSImageView-NSImage (risorse) con Interface Builder

NSURL *pathToBGImage = [[NSURL alloc] initWithString:[[NSBundle mainBundle] pathForResource:@"NoiseBGMainView" ofType:@"jpg"]];

Questo è sbagliato. -[NSURL initWithString:] prende una versione stringa di un URL, ad esempio http://apple.com/ , non un percorso.

Perché non avete superato un URL, l'URL sarà un URL relativo, ma un URL relativo bisogno di una base. L'URL è un oggetto valido, ma non porta da nessuna parte. Questo, a sua volta, fa sì che initWithContentsOfURL: per tornare nil (perché si è tentato di caricare un'immagine da un URL relativo senza base). È quindi provare a dire l'immagine per disegnare, ma non si dispone di un'immagine, in modo da non succede nulla.

Si desidera initFileURLWithPath:. (O il metodo di classe fileURLWithPath:, con la quale non sarà necessario rilasciare l'URL in seguito.)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top