Bug im Interface Builder?

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

  • Bug im Interface Builder?

    Ich habe das Header-File einer Klasse in den Interface Builder gedropped. Diese Klasse habe ich dann als Custom Class des File's Owner gesetzt. In der Klasse sind 7 Outlets und 4 Actions definiert. Die 7 Outlets und die 4 Actions habe ich alle mit den entsprechenden Objekten im Interface Builder verbunden.

    Leider werden jedoch 2 Outlets (die für die NSButtons) vom System beim Laden des Nib-Files nicht verbunden. D.h. die Variablen sind nil, obwohl die zwei Buttons angezeigt werden und auch die beiden Actions dieser Buttons korrekt getriggert werden.

    Lässt sich dieser 'Bug' irgendwie reparieren oder darf ich das Nib-File etwa komplett neu erstellen?

    Hm, habe ich Lösung jetzt anscheinend gefunden. Man darf ein Outlet wohl nicht widthOptimal nennen. X(

    Nachdem ich das Outlet in optimalWidth umbenannt habe wurde es wieder korrekt mit dem NSButton verbunden. Gibt's es in einer Apple-Docu oder im Netz evtl. eine List, wie man Outlets auf keinen Fall benennen darf?
  • RE: Bug im Interface Builder?

    Das passiert mir aber alle Nase lang. WIe oft Rätsel ich herum warum verschiedene Dinge einfach nicht gemacht werden. Lösung ist dann das Outlet noch einmal umzubenennen und dann funktioniert es. Gerade vorgestern erst wieder gehabt mit einem NSImageView welches auf den Namen labelImage reagieren sollte. Tat es nicht und dann nannte ich es labelImageView und schon funktionierte es.

    Sven
    :wq! /dev/null
  • RE: Bug im Interface Builder?

    Original von MCDan
    Da hätte Apple ruhig man eine Warning ausgeben können, wenn man Outlets mit 'definierten Systemnamen' verwendet.

    Ich glaube nicht, dass es am Namen liegt. Ich könnte mir vorstellen, dass wenn Du das Outlet jetzt wieder widthOptimal nennst, es auch damit funktioniert. Schon mal ausprobiert?

    Michael
  • RE: Bug im Interface Builder?

    Original von Michael
    Ich glaube nicht, dass es am Namen liegt. Ich könnte mir vorstellen, dass wenn Du das Outlet jetzt wieder widthOptimal nennst, es auch damit funktioniert. Schon mal ausprobiert?

    Ich habe jetzt mehrere Stunden verschiedene Namen ausprobiert und einige Namen für Outlets funktionieren einfach nicht. So ist z.B. auch automaticRowHeight als Outlet nicht möglich. X(

    Man man man, versuche ich seit 10.4 nur noch Outlet-Namen die nicht erlaubt sind, oder sind die möglichen Namen von Apple seit 10.4 weiter eingeschränkt worden?

    Soll ich meine Outlets jetzt alle Otto1 bis Otto999 nennen?
  • RE: Bug im Interface Builder?

    Original von MCDan
    So ist z.B. auch automaticRowHeight als Outlet nicht möglich.

    Also, bei Dir muss definitiv was anderes daran schuld sein. Ich habe gerade sowohl widthOptimal als auch automaticRowHeight als Outlets ausprobiert und keinerlei Probleme damit.

    Original von MCDan
    Man man man, versuche ich seit 10.4 nur noch Outlet-Namen die nicht erlaubt sind, oder sind die möglichen Namen von Apple seit 10.4 weiter eingeschränkt worden?

    Ich glaube nicht daran, dass es da besondere Einschränkungen für Outlet-Namen gibt. Bisher wurde bei mir noch jeder Name akzeptiert. Eben auch die hier genannten.

    Michael
  • RE: Bug im Interface Builder?

    Mich würde das auch wundern, wenn diese Namen explizit verboten wären. Immerhin schaut sich das der Loader an und setzt dann die Members. Wieso sollte der da extra eine Prüfung machen?

    Eher glaube ich an eine "interne Problematik", etwa dass der Name bereits in einer Superklasse schon vergeben ist, dass die Schreibung nicht exakt passt usw.

    BTW: Für Bindings hat Apple schon unter Panther angekündigt, dass die Strategie zum Auffinden der Members eingeschränkt und geändert werden kann. Bost du dir wirklich sicher, dass du keinen Typo hast, Groß-/Kleinschreibung stimmen, Unterzüge usw.?
    Es hat noch nie etwas gefunzt. To tear down the Wall would be a Werror!
    25.06.2016: [Swift] gehört zu meinen *Favorite Tags* auf SO. In welcher Bedeutung von "favorite"?
  • RE: Bug im Interface Builder?

    Original von Tom9811
    Eher glaube ich an eine "interne Problematik", etwa dass der Name bereits in einer Superklasse schon vergeben ist, dass die Schreibung nicht exakt passt usw.

    BTW: Für Bindings hat Apple schon unter Panther angekündigt, dass die Strategie zum Auffinden der Members eingeschränkt und geändert werden kann. Bost du dir wirklich sicher, dass du keinen Typo hast, Groß-/Kleinschreibung stimmen, Unterzüge usw.?

    Hm, meine Klasse ist direkt von NSObject abgeleitet, da sollte es keine Outlets mit den o.a. Namen geben. Ich habe jetzt schon ein komplett neues Nib-File, allerdings mit kopierten UI-Objekten, erstellt und der Fehler bleibt leider bestehen.

    Jetzt habe ich das Outlet rowHeightAutomatic genannt und damit klappte es dann ohne Probleme.

    Ich bin langsam auch der Meinung, dass sich da etwas in Xcode oder dem Interface Builder verklemmt hat. Mal schauen, ob die Apple Entwickler mir dazu auf der WWDC etwas erzählen können. ;)