現(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上了,情況如下圖:
你能把創(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幫忙。