2014-01-31 4 views
1

내 코로나 프로젝트에서 테이블 행에 텍스트 필드를 표시하고 싶습니다. 여기 코드에 하나의 텍스트 필드 만 표시됩니다. 데이터 필드에 텍스트 필드를 표시하고 싶습니다.테이블 행에 텍스트 필드 추가 - 코로나 SDK

local function onRowRender(event) 
local phase = event.phase 
local row = event.row 

local itemObj = GetItemDetails(row.index); 

local txt = itemObj.itemName; 
if(#txt > 25) then 
    txt = string.sub(txt,1,25); 
    txt = txt..".."; 
end 

local rowTitle = display.newText(row, "\t"..txt, 0, 0, "impact", 14) 
if(deviceName == "iPhone" or deviceName == "iPad") then 
    rowTitle.x = row.x - (row.contentWidth * 0.5) + (rowTitle.contentWidth * 0.5) 
else 
    rowTitle.x = row.x - (row.contentWidth * 0.5) + (rowTitle.contentWidth * 0.5)+15 
end 
rowTitle.y = row.contentHeight * 0.5 
rowTitle:setTextColor(98, 71, 24) 

local rowqtytxt=nil; 
if(deviceName == "iPhone" or deviceName == "iPad") then 
    rowqtytxt= native.newTextField(0, 0,32, 32 ,onSubmitted); 
    rowqtytxt.x = 125; 
    rowqtytxt.hasBackground = false; 
    --rowqtytxt:addEventListener("userInput", textListener) 
    rowqtytxt.size = 32; 
else 
    rowqtytxt = native.newTextField(0, 0,32, 32 ,onSubmitted); 
    rowqtytxt.x = 207; 
    rowqtytxt.hasBackground = false; 
    -- rowqtytxt:addEventListener("userInput", textListener) 
    rowqtytxt.size = 32; 
end 

rowqtytxt.y = row.contentHeight * 0.5 
rowqtytxt:setTextColor(98, 71, 24) 
return true; 
end 

위의 코드는 당신이 무엇을 의미합니까, '자료 없음 행'말할 때이 문제

답변

1

를 해결하기 위해 하나의 텍스트 field.Please 도움말을 보여줍니다? itemObj에 항상 데이터가있는 것은 아닙니다. 이 경우

는, 당신은 경우 블록에서 텍스트 필드의 추가를 포장해야합니다

if(itemObj ~= nil) then 
    --Adding textField code 
end 

또한,이 기능은 단일 행을 렌더링하는 것 같다. 따라서 for 루프로 감싸 야합니다. Like

local i; 
--The # means 'length of' 
for i=1, #yourDataSource do 
    onRowRender(yourItemData) 
end 
1

코로나 SDK widget.newTableView는 표시 그룹을 기반으로합니다. 네이티브. * 객체는 표시 그룹에 삽입 할 수 없습니다. 따라서 tableView 행의 일부로 텍스트 필드를 스크롤 할 수 없습니다.

몇 주 전에 튜토리얼을 통해 native.newTextField를 표시 그룹에 묶는 방법을 시연했습니다. http://coronalabs.com/blog/2013/12/03/tutorial-customizing-text-input/

포럼에서 찾을 수있는 자습서에서 아이디어의 변형을 구현 한 커뮤니티 프로젝트가 있습니다.

아이디어는 enterFrame 수신기를 사용하여 native.newTextField를 연결된 표시 객체가있는 곳으로 이동시키는 것입니다. 그러나 tableView에 대해 실용적이지 않은 것은 tableView가 화면에서 행을 스크롤 할 때 올바르게 제거되지 않을 수 있다는 것입니다.