ios – Von der Mac-Entwicklung hinzugefügte untergeordnete Steuerelemente von NSView werden nicht angezeigt
phpcn_u1582
phpcn_u1582 2017-05-17 10:05:24
0
2
1360

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_u1582
phpcn_u1582

Antworte allen(2)
滿天的星座

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

淡淡烟草味

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

Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage