cari

Rumah  >  Soal Jawab  >  teks badan

ios - Pembangunan Mac NSView menambah kawalan kanak-kanak tidak dipaparkan

Sekarang saya telah menulis program Demo untuk platform Mac Lapisan atas diprogramkan menggunakan campuran c++ dan OC Akhiran viewcontroller juga telah ditukar kepada .mm Antara muka terus diseret dan digugurkan menggunakan papan cerita NSViews telah ditambah, seperti yang ditunjukkan dalam rajah di bawah:

Apabila pengaturcaraan, saya lulus dua NSView tersuai di sebelah kanan melalui antara muka, menukar penunjuk dua nsviews kepada jenis void, melalui lapisan modul berkapsul lapisan C++, dan akhirnya menghantarnya ke lapisan bawah dua penunjuk taip void kembali ke taip nsview* sekali lagi, dan kemudian tambahkan subview pada dua nsviews, sambil menambah dua nstextfields Semasa penyahpepijatan, ia menunjukkan bahawa bilangan subview memang 1, menunjukkan bahawa ia telah berjaya ditambahkan.
Buat kawalan dan tambah kod kawalan kanak-kanak:

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

Selepas itu, saya menggunakan alat penyahpepijatan warisan UI yang disertakan dengan xcode, dan ia menunjukkan bahawa dua medan nstext telah berjaya ditambahkan pada nsview, seperti ditunjukkan di bawah:

Anda dapat melihat bahawa kedua-dua NSViews di sebelah kanan telah berjaya menambah dua NStextfeilds,
Walau bagaimanapun, kedua-dua kotak teks tidak dapat dilihat dalam antara muka berjalan yang sebenarnya, ia telah menjadi telus dan boleh diklik ini:

Soalan saya ialah: Mengapa addsubview berjaya tetapi tidak dapat memaparkan sub-kawalan seperti biasa semasa masa jalanan Kedua-dua kawalan menjadi telus. Saya tidak membuat sebarang tetapan yang berkaitan dengan ketelusan atau latar belakang.
Adakah ia berkaitan dengan penggunaan kompilasi campuran c++ OC NSVIew juga melalui lapisan enkapsulasi c++ apabila ia diturunkan?
Saya harap kawan-kawan yang berpengalaman dapat memberi saya nasihat. Saya sangat berterima kasih.

phpcn_u1582phpcn_u15822770 hari yang lalu1363

membalas semua(2)saya akan balas

  • 滿天的星座

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

    Bolehkah anda siarkan kod yang mencipta NSTextField和添加到view?
    Saya cuba menyeretnya terus ke dalam antara muka grafik atau menambah kod untuk memaparkannya.

    balas
    0
  • 淡淡烟草味

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

    Selepas mencari selama sehari, akhirnya saya menemui punca masalah: kawalan UI tidak dikendalikan dalam utas utama, iaitu, induk View addsubview telah dilakukan dalam thread anak.
    Lampiran 1: http://blog.csdn.net/msss00/a... Ringkasan sebab mengapa addsubview iOS tidak dipaparkan)
    Lampiran 2: http://blog.csdn.net/ libaineu... (Dua kaedah untuk sub-benang iOS untuk mengemas kini UI)
    Masalah telah diselesaikan, dan terima kasih kepada @tomdfriwel atas bantuannya.

    balas
    0
  • Batalbalas