suchen

Heim  >  Fragen und Antworten  >  Hauptteil

ios – Von der Mac-Entwicklung hinzugefügte untergeordnete Steuerelemente von NSView werden nicht angezeigt

Jetzt habe ich ein Demoprogramm für die Mac-Plattform geschrieben. Das Viewcontroller-Suffix wurde ebenfalls in .mm geändert. Die Benutzeroberfläche wird direkt per Drag & Drop über das Storyboard erstellt NSViews wurden hinzugefügt, wie in der Abbildung unten gezeigt:

Beim Programmieren habe ich die beiden benutzerdefinierten NSViews auf der rechten Seite über die Schnittstelle übergeben, die Zeiger der beiden NSViews in void-Typen konvertiert, eine Schicht gekapselter C++-Schichtmodule durchlaufen und sie schließlich an die unterste Schicht übergeben Zwei void-Typzeiger zurück auf den Typ nsview* und dann den beiden nsviews einen Subview hinzufügen, wodurch zwei nstextfields hinzugefügt werden. Beim Debuggen wird angezeigt, dass die Anzahl der Unteransichten tatsächlich 1 beträgt, was darauf hinweist, dass sie erfolgreich hinzugefügt wurden. Erstellen Sie Steuerelemente und fügen Sie Code für untergeordnete Steuerelemente hinzu:

     _TextField = [[NSTextField alloc] initWithFrame:NSMakeRect(0, 0, 100, 20) ];
     [_parentView addSubview:_TextField];

Danach habe ich das mit xcode gelieferte Tool zum Debuggen der UI-Vererbung verwendet und es zeigte, dass zwei NSTextfields erfolgreich zu NSView hinzugefügt wurden, wie unten gezeigt:


Sie können sehen, dass die beiden NSViews auf der rechten Seite erfolgreich zwei NStextfelder hinzugefügt haben.

Die beiden Textfelder sind jedoch in der tatsächlichen Laufoberfläche nicht sichtbar und können angeklickt werden dies:

Meine Frage ist: Warum funktioniert addsubview, die Untersteuerelemente können jedoch während der Laufzeit nicht normal angezeigt werden? Ich habe keine Einstellungen bezüglich Transparenz oder Hintergrund vorgenommen.

Hängt es mit der Verwendung der gemischten C++-OC-Kompilierung zusammen? Durchläuft NSVIew bei der Weitergabe auch eine Ebene der C++-Kapselung?
Ich hoffe, dass erfahrene Freunde mir einen Rat geben können. Vielen Dank!

phpcn_u1582phpcn_u15822790 Tage vor1372

Antworte allen(2)Ich werde antworten

  • 滿天的星座

    滿天的星座2017-05-17 10:07:24

    你能把创建NSTextField和添加到view的代码贴出来吗?
    我试了图形界面直接拖进去或代码添加都能显示。

    Antwort
    0
  • 淡淡烟草味

    淡淡烟草味2017-05-17 10:07:24

    找了一天,最终找到问题原因:没有在主线程中操作UI控件,就是父View addsubview的时候是在子线程中进行的。
    附文1: http://blog.csdn.net/msss00/a... iOS addsubview后不显示原因总结)
    附文2: http://blog.csdn.net/libaineu...(iOS子线程更新UI的两种方法)
    问题得到解决,也感谢@tomdfriwel帮助。

    Antwort
    0
  • StornierenAntwort