• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Viele hassen ihn, manche schwören auf ihn, wir aber möchten unbedingt sehen, welche Bilder Ihr vor Eurem geistigen Auge bzw. vor der Linse Eures iPhone oder iPad sehen könnt, wenn Ihr dieses Wort hört oder lest. Macht mit und beteiligt Euch an unserem Frühjahrsputz ---> 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
 

MacApple

Schöner von Bath
Registriert
05.01.04
Beiträge
3.652
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
 

zottel

James Grieve
Registriert
11.07.08
Beiträge
133
Bist Du sicher? Ich kann das Ergebnis dieser Initialisierung aber problemlos einer PDFView zuordnen? Naja, ich werds mal ausprobieren, danke.
 

zottel

James Grieve
Registriert
11.07.08
Beiträge
133
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. o_O
 

zottel

James Grieve
Registriert
11.07.08
Beiträge
133
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. ?-(
 

MacApple

Schöner von Bath
Registriert
05.01.04
Beiträge
3.652
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
 

zottel

James Grieve
Registriert
11.07.08
Beiträge
133
Jaaaa, so funktioniert's. :) Vielen Dank!