NSTextView nach und nach bestücken

Diskutiere mit über: NSTextView nach und nach bestücken im Mac OS X Entwickler, Programmierer Forum

  1. martinibook

    martinibook Thread Starter MacUser Mitglied

    Beiträge:
    8.564
    Zustimmungen:
    350
    Registriert seit:
    20.08.2005
    Hallo,
    Ich baue gerade an einem Cocoa Programm, mit dem man Primzahlen bestimmen kann. Ich habe schon folgendes:
    [​IMG]

    Ich bekomme pro Klick auf den Butten eine neue Zahl:
    Code:
    - (IBAction)next:(id)sender
    	{
    	int primzahl;
    	primzahl = neuezahl();
    	[textfeld setIntValue:primzahl];
    	}
    Nun möchte ich gerne in das Textfeld die neue Zahl dazuschreiben, dass dann dort steht: 1,2,3,5,7,11,13 usw. wie mache ich das?

    Martin
     
  2. oneOeight

    oneOeight MacUser Mitglied

    Beiträge:
    46.774
    Zustimmungen:
    3.629
    Registriert seit:
    23.11.2004
    in dem du da mit einem String arbeitest und die neue primzahl immer dran hängst?
     
  3. martinibook

    martinibook Thread Starter MacUser Mitglied

    Beiträge:
    8.564
    Zustimmungen:
    350
    Registriert seit:
    20.08.2005
    Ich habe folgenden Code:
    Code:
    int primzahl;
    	
    	static NSString *string;
    int primzahl;
    	
    // Neue Primzahl holen
    	primzahl = neuezahl();
    // In das kleine Feld schreiben
    	[textfeld setIntValue:primzahl];
    	
    // Neue Zahl an alten String anhängen	
    	string = sprintf ("%s, %d", *string, primzahl);
    	
    // Sting ins Textfeld	
    	[feld setString:string];
    
    Und dann kommt es zu folgender Meldung, mit der ich allerdings wenig anfangen kann:
    [​IMG]

    Was muss ich da hinschreiben?

    Danke für die Hilfe, Martin
     
  4. Morfio

    Morfio MacUser Mitglied

    Beiträge:
    215
    Zustimmungen:
    1
    Registriert seit:
    25.10.2002
    Sieh dir einfach mal an, wie man sprintf (man sprintf) benutzt :) ... das ist so ein wenig falsch. Leider kenne ich mich nicht mit Cocoa aus, aber sicherlich wird's da eine elegantere Methode geben, als per C-Funktion.
     
  5. Spacemojo

    Spacemojo MacUser Mitglied

    Beiträge:
    616
    Zustimmungen:
    21
    Registriert seit:
    16.05.2004
    Schau dir mal die Klassen NSString und NSMutableString an.

    int meineZahl = 1;
    NSMutableString *string = [[NSMutableString alloc] init];
    NSString *neuerString = [NSString stringWithFormat:mad:"%d", meineZahl];
    [string appendString: neuerString];
     
  6. martinibook

    martinibook Thread Starter MacUser Mitglied

    Beiträge:
    8.564
    Zustimmungen:
    350
    Registriert seit:
    20.08.2005
    Vielen Dank für den Code. Allerdings habe ich noch ein kleines Problem mit der Funktion stringWithFormat. Ich muss ja den Alten string noch dareintun. Ich habe dass jetzt so versucht. Oder macht das zusammenbauen schon appendString?
    Code:
    static NSMutableString *string;
    	string = [[NSMutableString alloc] init];
    	NSString *neuerString = [NSString stringWithFormat:@"%s, %d", string, primzahl];
    	[string appendString: neuerString];
    	
    	// Sting ins Textfeld	
    	[feld setString:string];
    Dann kommt da zB: †s¶t, 17

    Nochmals Danke, Martin
     
  7. Spacemojo

    Spacemojo MacUser Mitglied

    Beiträge:
    616
    Zustimmungen:
    21
    Registriert seit:
    16.05.2004
    Wenn string ein NSString ist, musst du
    "mein string ist: %@", string
    verwenden statt
    "mein string ist: %s", string
     
  8. Spacemojo

    Spacemojo MacUser Mitglied

    Beiträge:
    616
    Zustimmungen:
    21
    Registriert seit:
    16.05.2004
    Ach ja: Das Zusammenbauen macht schon appendString. Append = anhängen.
    Also wenn im string "123" drin steht und man macht [string appendString: [NSString stringWithFormat:mad:", 456"]] steht dann im string "123, 456".
     
  9. martinibook

    martinibook Thread Starter MacUser Mitglied

    Beiträge:
    8.564
    Zustimmungen:
    350
    Registriert seit:
    20.08.2005
    Ich habe jetzt folgende funktion:
    Code:
    int primzahl;
    	
    	// Neue Primzahl holen
    	primzahl = neuezahl();
    	// In das kleine Feld schreiben
    	[textfeld setIntValue:primzahl];
    	
    	// Neue Zahl an alten String anhängen	
    	static NSMutableString *string;
    	string = [[NSMutableString alloc] init];
    	NSString *neuerString = [NSString stringWithFormat:@"%@, %d", string, primzahl];
    	[string appendString: neuerString];
    	
    	// Sting ins Textfeld	
    	[feld setString:string];	
    Als Ausgabe bekomme ich nach einigen Aufrufen folgendes:
    [​IMG]

    Eigentlich müsste der ja doppelt drangehängt werden, oder sehe ich das falsch?
    Klappt das mit dem Static vielleicht nicht?

    Martin
     
  10. oneOeight

    oneOeight MacUser Mitglied

    Beiträge:
    46.774
    Zustimmungen:
    3.629
    Registriert seit:
    23.11.2004
    nein, du machst den string immer neu und schreibst dann was rein, statt den string global zu definieren, dann den text zu holen und dann dran zu hängen...

    besorg dir doch mal ein buch über grundlagen des programmierens ;)
     
Die Seite wird geladen...
Ähnliche Themen - NSTextView nach nach Forum Datum
Zwei Shell-Befehle nach einander ausführen Mac OS X Entwickler, Programmierer 23.07.2015
XAMPP funktioniert nach Yosemite nicht mehr vollsändig Mac OS X Entwickler, Programmierer 18.10.2014
Icon von Photoshop nach Updates am Launchpad verschwunden Mac OS X Entwickler, Programmierer 09.01.2013
In einem Array nach einem Objekt-Typ suchen? Mac OS X Entwickler, Programmierer 02.08.2012
Wie Text in NSTextView einfügen? Mac OS X Entwickler, Programmierer 20.01.2007

Diese Seite empfehlen

Benutzerdefinierte Suche