Text in Textfeld hinzufügen + Pfad von Textfeld abrufen

  • Text in Textfeld hinzufügen + Pfad von Textfeld abrufen

    Hi Community

    Habe zwei Probleme:
    1. Wenn ich im Programm etwas in ein Textfeld schreibe, zum Beispiel "Hallo", danach ein Button drücke sollte z.B. stehen: "HalloBye". Das "Bye" sollte einfach hinzugefügt werden. Leider habe ich kein Schimmer wie ich das anstelle. [hallobye setStringValue: ...] oder so etwas. Versuche es mit einem Outlet.

    2. Ich öffne einen Pfad in ein Textfeld:

    Quellcode

    1. - (IBAction)doOpen:(id)pId; {
    2. NSLog(@"doOpen");
    3. NSOpenPanel *tvarNSOpenPanelObj = [NSOpenPanel openPanel];
    4. [tvarNSOpenPanelObj setCanChooseDirectories:YES];
    5. [tvarNSOpenPanelObj setCanChooseFiles:NO];
    6. NSInteger tvarNSInteger = [tvarNSOpenPanelObj runModalForTypes:nil];
    7. if(tvarNSInteger == NSOKButton){
    8. NSLog(@"doOpen we have an OK button");
    9. } else if(tvarNSInteger == NSCancelButton) {
    10. NSLog(@"doOpen we have a Cancel button");
    11. } else {
    12. NSLog(@"doOpen tvarInt not equal 1 or zero = =",tvarNSInteger);
    13. }
    14. // end if
    15. NSString * tvarDirectory = [tvarNSOpenPanelObj directory];
    16. NSLog(@"doOpen directory = %@",tvarDirectory);
    17. NSString * tvarFilename = [tvarNSOpenPanelObj filename];
    18. NSLog(@"doOpen filename = %@",tvarFilename);
    19. // end doOpen
    20. [testPath setStringValue: [tvarNSOpenPanelObj directory]];
    21. }
    Alles anzeigen


    (testPath ist das Textfield)

    So, der Ordner (Pfad) sollte auf Druck eines Buttons verschoben werden.

    Quellcode

    1. - (IBAction)doMove: (id) sender {
    2. NSString* sourcePath = ??? ;
    3. NSString* destPath = [@"Ausgangspfad" stringByExpandingTildeInPath];
    4. NSFileManager* fm = [NSFileManager defaultManager];
    5. NSError* err = @"Fehler";
    6. if ([fm moveItemAtPath:sourcePath toPath:destPath error:&err] == YES) {
    7. NSLog(@"OK");
    8. } else {
    9. NSLog(@"nicht OK, sondern: %@", err);
    10. [outputText setStringValue:@"Es ist ein unbekannter Fehler aufgetreten"];
    11. [showImage setHidden:NO];
    12. }
    13. }
    Alles anzeigen



    Was kommt bei den drei ??? hinein? Oder mache ich etwas ganz falsch?

    Grüsse Toren
  • Noch eine Frage:
    Wie siehts aus mit mehreren Ordner?
    Kann ich mehrere Ordner mit einem solchen Pfad öffnen: ~/Desktop/Test/ ?
    Und wie lautet der Pfad, um mehrere Ordner zu verschieben?
    Zur Info, hier noch einmal das ganze:

    Quellcode

    1. NSString * tvarDirectory = [tvarNSOpenPanelObj directory];
    2. NSLog(@"doOpen directory = %@",tvarDirectory);
    3. NSString * tvarFilename = [tvarNSOpenPanelObj filename];
    4. NSLog(@"doOpen filename = %@",tvarFilename);
    5. // end doOpen
    6. [testPath setStringValue: [tvarNSOpenPanelObj directory]];
    7. NSString * newText = [NSString stringWithFormat:@"%@/test/", [testPath stringValue]];
    8. [testPath setStringValue:newText];


    Quellcode

    1. NSString * sourcePath = [testPath stringValue];
    2. NSString * destPath = [@"~/Desktop/Test/test" stringByExpandingTildeInPath];
    3. NSFileManager* fm = [NSFileManager defaultManager];
    4. NSError * err = @"Fehler";
    5. if ([fm moveItemAtPath:sourcePath toPath:destPath error:&err] == YES) {
    6. NSLog(@"OK");
    7. } else {
    8. NSLog(@"nicht OK, sondern: %@", err);
    9. [outputText setStringValue:@"Es ist ein unbekannter Fehler aufgetreten"];
    10. [showImage setHidden:NO];
    11. }
    Alles anzeigen
  • Zum Kopieren oder Verschieben von Pfaden (Ordnern oder Dateien) bitte die Doku von NSFileManager lesen, da gibt es entsprechende Methoden.

    Bitte immer drauf achten, wann Cocoa mit NSString und wann mit NSURL-Objekten verfahren wird, da gibt es unterschiede. Aber man kann das eine in das andere konvertieren.