NSTextField programmatisch erzeugen

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • NSTextField programmatisch erzeugen

    Hallo,
    ich stehe vor einer simplen, aber für mich sehr GROßEN Herausforderung, ich habe schon im diesem und anderen Foren, so wie auch Google nachgesucht, jedoch bin ich nach langer Zeit und vielem Probieren noch immer nicht auf die Lösung gekommen,
    mein Problem ist:

    Wie erzeugen ich ein "NSTextField" programmatisch???

    Ich bedanke mich schon mal im voraus
  • samstone schrieb:

    Hallo,
    ich stehe vor einer simplen, aber für mich sehr GROßEN Herausforderung, ich habe schon im diesem und anderen Foren, so wie auch Google nachgesucht, jedoch bin ich nach langer Zeit und vielem Probieren noch immer nicht auf die Lösung gekommen,
    mein Problem ist:

    Wie erzeugen ich ein "NSTextField" programmatisch???

    Ich bedanke mich schon mal im voraus

    So:

    Quellcode

    1. NSTextField *textField = [[NSTextField alloc] initWithFrame:NSMakeRect(20, 20, 120, 18)];

    Z.B.
    I would be embarrassed if they did not spy on me.
  • Danach must du es natuerlich noch an das entsprechende View hänge, sonst siehst du nix :)

    Quellcode

    1. [self.view AddSubview:textfield];


    naja und das eine oder andere Attribute welches sich in der API finden läßt solltest Du eventuell auch noch setzen.

    Gruß

    Claus
    2 Stunden Try & Error erspart 10 Minuten Handbuchlesen.

    Pre-Kaffee-Posts sind mit Vorsicht zu geniessen :)
  • vielen dank für die schnelle Antwort,
    diesen Lösungsansatz habe ich mir auch gedacht, jedoch kommt eine Fehlermeldung

    #import "NSTextFieldAppDelegate.h"


    @implementation NSTextFieldAppDelegate


    @synthesize window;


    - (void)applicationDidFinishLaunching:(NSNotification *)aNotification
    {
    NSTextField *textField = [[NSTextField alloc] initWithFrame:NSMakeRect(20, 20, 120, 18)];
    [self.window AddSubview:textField];


    }


    @end
    Fehlermeldung :
    "warning: Semantic Issue: Method '-AddSubview:' not found (return type defaults to 'id')
    "
  • samstone schrieb:

    vielen dank für die schnelle Antwort,
    diesen Lösungsansatz habe ich mir auch gedacht, jedoch kommt eine Fehlermeldung

    #import "NSTextFieldAppDelegate.h"


    @implementation NSTextFieldAppDelegate


    @synthesize window;


    - (void)applicationDidFinishLaunching: (NSNotification *) aNotification
    {
    NSTextField *textField = [[NSTextField alloc] initWithFrame: NSMakeRect(20, 20, 120, 18 )];
    [self.window AddSubview:textField];


    }


    @end
    Fehlermeldung :
    "warning: Semantic Issue: Method '-AddSubview:' not found (return type defaults to 'id')
    "


    Groß- und Kleinschreibung.

    Die Regeln der Speicherverwaltung sollten auch beachtet werden.

    also:

    Quellcode

    1. [textfield release];
    I would be embarrassed if they did not spy on me.
  • Thallius schrieb:

    Danach must du es natuerlich noch an das entsprechende View hänge, sonst siehst du nix :)

    Quellcode

    1. [self.view AddSubview:textfield];


    naja und das eine oder andere Attribute welches sich in der API finden läßt solltest Du eventuell auch noch setzen.

    Gruß

    Claus


    Danach hatte er doch gar nicht gefragt.

    Aber hast ja Recht…
    I would be embarrassed if they did not spy on me.
  • samstone schrieb:

    vielen dank für die schnelle Antwort,
    diesen Lösungsansatz habe ich mir auch gedacht, jedoch kommt eine Fehlermeldung

    #import "NSTextFieldAppDelegate.h"


    @implementation NSTextFieldAppDelegate


    @synthesize window;


    - (void)applicationDidFinishLaunching:(NSNotification *)aNotification
    {
    NSTextField *textField = [[NSTextField alloc] initWithFrame:NSMakeRect(20, 20, 120, 18)];
    [self.window AddSubview:textField];


    }


    @end
    Fehlermeldung :
    "warning: Semantic Issue: Method '-AddSubview:' not found (return type defaults to 'id')
    "


    Wenn das der Originaltext ist, liegt es an der Schreibweise !! addSubview !


  • #import "NSTextFieldAppDelegate.h"

    @implementation NSTextFieldAppDelegate
    @synthesize
    window;


    - (
    void)applicationDidFinishLaunching:(NSNotification *)aNotification
    {
    NSTextField *textField = [[NSTextField alloc] initWithFrame:NSMakeRect(20, 20, 120, 18)];
    [
    self.window addSubview:textField];
    [textField
    release];
    }

    @end
    warning: Semantic Issue: 'NSWindow' may not respond to 'addSubview:'
  • samstone schrieb:

    ja beim iphone habe ich die Problem alle auch nicht, aber beim mac ist das iwe anders
    auch das formatieren habe ich noch nicht beim mac hingekriegt


    Das Koordinatensystem ist so, wie Du es beschrieben, und anders, als auf dem iPhone.

    Die UI~ -Klassen und die NS~ -Klassen sind sixch auch nur ähnlich.
    Da muss schon einiges beachtet sein.
    I would be embarrassed if they did not spy on me.
  • ramo schrieb:

    Probiere mal mit:[[self.window contentView]translateOriginToPoint:NSMakePoint(20, 300)]; wobei der Y-Wert (300) von der frame.height abhängig gemacht werden müßte ??? Versuch ?


    Und…

    Dann ist der Ursprung verschoben, und er kann das Vorzeichen ändern.
    Aber im Prinzip bleibt sich das gleich.

    Ich würde mich dem Koordinatensystem des jeweiligen Gerätes unterwerfen.
    Die Logik, das selbst aus gedanklicher Faulheit anzupassen, geht nach hinten los.
    I would be embarrassed if they did not spy on me.
  • samstone schrieb:

    das hat nix mit Faulheit zu tun, ich will einfach nur eine Positionierung von diesem Ursprung haben, wenn wenn ich die Fenstergröße verändere, verschiebt sich alles

    Dich meinte ich nicht damit, das 'translate' bringt einfach nichts.
    Also:
    Zum Einen hast Du noch eine "autosizingMask" zu beachten.
    Die musst Du auch setzen, wenn Du es programmatisch erzeugst.

    Und zudem gibt es delegate-<ethoden, die das Verschieben, Vergrößern etc. überwachen.
    I would be embarrassed if they did not spy on me.