• Wieder einmal haben uns unsere Apfeltalker tolle Fotos zur Abstimmung eingesandt. Welches ist Euer Favorit? Stimmt mit ab! Hier geht es zur Abstimmung --> Klick
  • Es ist bereits Apfeltalk-Tradition und wir möchten sie auch in diesem Jahr fortsetzen: Unser Apfeltalk-Weihnachtslogo-Wettbewerb hat begonnen! Gestaltet für uns das Weihnachtsbanner, das im Monat Dezember bis zum Weihnachtsfest unsere Webseite schmücken soll. Lasst Eurer Kreativität freien Lauf! Hier geht es zum Wettbewerb --> Klick

Warum bekomme ich keine Notifications?

zottel

James Grieve
Registriert
11.07.08
Beiträge
133
Hallo,

ich bastle gerade ein bisschen mit Notifications herum und verstehe nicht, warum folgendes nicht funktioniert:

Code:
	tazPDF = [[PDFDocument alloc] initWithData:[NSData dataWithContentsOfFile:@"/Users/zottel/Documents/taz/2007_09_13.pdf"]];
[...]
	[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(startFind:) name:@"PDFDocumentDidBeginFindNotification" object:nil];
[...]
- (IBAction)findString:(id)sender {
	[textfeld setStringValue:@"jetzt wird gesucht"];
	[tazPDF beginFindString:[suchfeld stringValue] withOptions:NSCaseInsensitiveSearch];
}

- (void)startFind:(NSNotification *)notification {
	[textfeld setStringValue:@"Suche gestartet"];
}

Die ersten zwei Zeilen sind Teil einer Methode der gleichen Klasse und werden vor findString: aufgerufen. Wenn findString: aufgerufen wird, sehe ich die entsprechende Veränderung in textfeld. startFind: wird jedoch nie aufgerufen – textfeld wird nicht entsprechend verändert, und auch ein Breakpoint in der entsprechenden Zeile wird nie ausgelöst. Dabei müsste begindFindString doch eine PDFDocumentDidBeginFindNotification auslösen! Selbes Problem mit PDFDocumentDidFindMatchNotification, die ich eigentlich brauche.

Was mache ich falsch?

Danke,

Christian
 
Du initialisierst Dein PDFDocument falsch. Eine PDF-Datei ist kein gespeichertes NSData Objekt. Wenn Du ein PDFDocument mit einer PDF-Datei initialisieren willst, musst Du das mit initWithURL: machen.

MacApple
 
Bist Du sicher? Ich kann das Ergebnis dieser Initialisierung aber problemlos einer PDFView zuordnen? Naja, ich werds mal ausprobieren, danke.
 
Habe die entsprechende Zeile geändert zu

Code:
	tazPDF = [[PDFDocument alloc] initWithURL:[NSURL fileURLWithPath:@"/Users/zottel/Documents/taz/2007_09_13.pdf"]];

Das Ergebnis bleibt leider das gleiche. :-/
 
Nochwas: Habe es eben mal mit findString: statt beginFindString: versucht, um sicherzugehen, dass das Suchen auch funktioniert, und das tut es. findString: geht, aber mit beginFindString: bekomme ich keine Notifications. ?-(
 
Ok, das hier habe ich noch übersehen:
Code:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(startFind:) name:@"PDFDocumentDidBeginFindNotification" object:nil];
Den Parameter name: übergibst Du falsch. So ist es richtig:
Code:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(startFind:) name:PDFDocumentDidBeginFindNotification object:nil];
MacApple