GUI Elemente maximale grössen zuweisen

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

  • GUI Elemente maximale grössen zuweisen

    Kann ich einem NSTextField oder NSPopupButton eine maximal Grösse zuweisen? Ich möchte das die Elemente beim Fenster vergrössern sich mit vergrössern, aber nur bis zu einer bestimmten Grösse und dann diese Grösse behalten. Ich kann zwar etwas mir maxW und maxH einstellen, aber das scheint für was anderes zu sein, Sven
    :wq! /dev/null
  • da wirst Du wohl dem Fenster eine max. Grösse zuweisen müssen.

    Wohler soll der "Layout-Manager" auch wissen was passieren soll, wenn beim Vergrössern eines Fensters z.B. ein NSTextField seine max. Grösse erreicht hat? Wo soll jetzt der "Leere-Bereich" gezeichnet werden, rechts oder links vom NSTextField? ?(

    Im Interface Builder kann man für diesen Fall leider auch keine vernünftigen Angaben machen. :(
  • na er vergrössert die Elemente automatisch mit. Nur soll dann irgendwann einfach Schluss sein mit dem vergrössern. Also ich kenne da eine Entwicklungsumgebung (deren Namen ich nun lieber nicht ausspreche *g*) da geht das ohne Probleme ;) Das Prob ist, da ich 2 Elemente auf die kleinste Grösse des Fensters anpassen muss, damit Sie reinpassen und sich nicht überlappen. Beim vergrössern des Fensters ( und das soll so gross wie der Bildschirm werden ) sollen eben die Elemente sich mit vergrössern. Nur wenn das Fenster zu gross wird, dann schauen die Elemente scheiße aus. Wobei beim vergrössern des Fenster kann ich doch eine Notification abfangen und die Elemente einfach auf eine Grösse zurück setzen oder? Frage nur, wie frage ich die Grösse eines Elemntes ab und wie setzte ich sie neu. Sven
    :wq! /dev/null
  • Original von Stalkingwolf
    Das Prob ist, da ich 2 Elemente auf die kleinste Grösse des Fensters anpassen muss, damit Sie reinpassen und sich nicht überlappen.

    Man könnte jetzt natürlich ganz gemein sagen, das Interface ist dann einfach schlecht designed :], aber egal. Kannst Du nicht einfach die minimale Größe des Fensters herauf setzen?
    Original von Stalkingwolf
    Wobei beim vergrössern des Fenster kann ich doch eine Notification abfangen und die Elemente einfach auf eine Grösse zurück setzen oder?
    Frage nur, wie frage ich die Grösse eines Elemntes ab und wie setzte ich sie neu.

    Die Größe eines Views bekommt man mit -frame und setzen kann man den entsprechend mit -setFrame:.

    Michael
  • Original von Michael
    Man könnte jetzt natürlich ganz gemein sagen, das Interface ist dann einfach schlecht designed :], aber egal. Kannst Du nicht einfach die minimale Größe des Fensters herauf setzen?

    ja ne :) ist halt blöde, da das Fenster einmal möglichst klein soll, aber dann eben auch den ganzen Bildschirm benutzen soll.
    und irgendwie weiß ich nicht wo hin mit den beiden Elementen. Weil eigentlich ist in dem Fenster nur eine NSTableView.
    Ich werde es einmal mit dem -setFrame ausprobieren.

    Sven
    :wq! /dev/null
  • Und warum muss die minimale Größe des Fensters nun unbedingt kleiner sein, als Platz für die beiden Elemente notwendig ist?

    Wenn's denn unbedingt sein muss, würde ich einfach von den beiden Elementen eine Subklasse machen und die -setFrame:-Methode überschreiben, in der dann die maximale Größe für die beiden Elemente erzwungen wird.

    Michael
  • RE: Hm, ...

    es geht beim resizing die grösse der Elemente abzufragen und dann wenn es eine bestimmte grösse erreicht fest auf eine grösse zurück zu setzen.
    Allerdings verlangsamert dies das resizing des windows enorm.
    Muss mir ne andere Lösung ausdenken. Dennoch danke euch allen.

    Sven
    :wq! /dev/null
  • Ein Problem, von dem ich glaube, dass es auftreten könnte ist, dass zurück-sizen. Ich bin mir nicht ganz sicher, ob Cocoa die Größen der Elemente nach einem resize anhand der vorhandenen Größe oder anhand der Ursprungsgröße bestimmt. Wenn es ersteres wäre, könnte es ja sein, dass Cocoa der Meinung ist, dass das element, was du nun nicht nach der abgespeicherten Vorschrift resized hast
  • RE: Hm, ...

    Original von Stalkingwolf
    es geht beim resizing die grösse der Elemente abzufragen und dann wenn es eine bestimmte grösse erreicht fest auf eine grösse zurück zu setzen.
    Allerdings verlangsamert dies das resizing des windows enorm.
    Muss mir ne andere Lösung ausdenken. Dennoch danke euch allen.

    Sven


    hast du es mal mit einem splitview versucht?
    also das popup in ein view und die beiden anderen elemente in einen zweiten.
    so ähnlich, wie das bei safari mit dem url- und dem google-feld gelöst ist.
    dann können die anwender die größe des suchfeldes selbst bestimmen, und du hast etwas mehr einfluß auf die größenverhältnisse. so als anregung. ;)