国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

ios - Mac開(kāi)發(fā) NSView 新增的子控制項(xiàng)不顯示
phpcn_u1582
phpcn_u1582 2017-05-17 10:05:24
0
2
1562

現(xiàn)在寫(xiě)了一個(gè)Mac平臺(tái)下的Demo程序,上層使用c 和OC混合編程,viewcontroller後綴也改成了.mm,界面是使用storyboard直接拖曳的,添加了兩個(gè)自定義的NSView, 如下圖中所示:

程式設(shè)計(jì)的時(shí)候我將右邊的兩個(gè)自訂的NSView都透過(guò)介面?zhèn)鬟f下去了,將兩個(gè)nsview的指標(biāo)轉(zhuǎn)換為void 類(lèi)型,中間經(jīng)過(guò)了一層c 層的封裝的模組,最後傳遞到底層,再次將兩個(gè)void 類(lèi)型的指標(biāo)強(qiáng)轉(zhuǎn)回nsview* 類(lèi)型,之後在兩個(gè)nsview上addsubview,添加了兩個(gè)nstextfield,調(diào)試的時(shí)候顯示subview的數(shù)量確實(shí)是1,說(shuō)明成功添加上了。
建立控制項(xiàng)和新增子控制項(xiàng)程式碼:

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

之後用xcode自帶的UI繼承調(diào)試工具,顯示也成功把兩個(gè)nstextfield加到nsview上了,情況如下圖:





##可以看到右側(cè)兩個(gè)NSView成功的添加了兩個(gè)NStextfeild,###但是實(shí)際運(yùn)行的介面卻怎麼也看不到這兩個(gè)文字框,實(shí)際上是變透明了,可以點(diǎn)擊到,運(yùn)行時(shí)效果是這樣的: ################ ###我的問(wèn)題是: 為什麼addsubview成功卻在運(yùn)行時(shí)不能正常顯示出子控件,兩個(gè)控件變透明了,我並沒(méi)有進(jìn)行透明或背景等相關(guān)的設(shè)定。 ### 是不是跟使用c OC 混編有關(guān),NSVIew向下傳遞的時(shí)候還經(jīng)過(guò)了一層c 封裝的東西? ###希望有經(jīng)驗(yàn)的朋友給指點(diǎn)一下,感激不盡,謝謝! ###
phpcn_u1582
phpcn_u1582

全部回覆(2)
滿(mǎn)天的星座

你能把創(chuàng)建NSTextField和添加到view的程式碼貼出來(lái)嗎?
我試了圖形介面直接拖進(jìn)去或程式碼添加都能顯示。

淡淡煙草味

找了一天,最後找到問(wèn)題原因:沒(méi)有在主線(xiàn)程中操作UI控件,就是父View addsubview的時(shí)候是在子線(xiàn)程中進(jìn)行的。
附文1:http://blog.csdn.net/msss00/a... iOS addsubview後不顯示原因總結(jié))
附文2:http://blog.csdn.net/libaineu...(iOS子執(zhí)行緒更新UI的兩種方法)
問(wèn)題解決,也感謝@tomdfriwel幫忙。

最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板