2012-08-17 3 views
2

이것은 간단한 것처럼 보이지만 나는 고생하고 있습니다.cell.textLabel.text의 텍스트에 액세스

내 스토리 보드에는 정적 셀을 사용하여 레이블이있는 텍스트가있는 셀이 있습니다. didSelectRowAtIndexPath에서 셀의 textLabel 텍스트에 액세스하려고합니다. 여기 내 코드는 NSLogging로,이다 :

UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath]; 
if (cell.textLabel.text) { 
     NSLog(@"cell.textLabel.text = %@",cell.textLabel.text); 
    } else { 
     NSLog(@"!cell.textLabel.text"); 
    } 
NSLog(@"just for fun: cell.textLabel.text = %@", cell.textLabel.text); 

문은 항상 "cell.textLabel.text!"를 반환하고 스토리 보드의 세포가 텍스트를 가지고 있지만 마지막 NSLog는 항상 (NULL) 인 경우.

cell.textLabel이 올바르지 않습니까? UITableViewCell의 또 다른 하위 뷰를보고 있어야합니까?

+1

셀 텍스트가 detailTextLabel이 아닌 textLabel에 있는지 확인하십시오. –

+0

방금 ​​detailTextLabel을 시도하고 똑같은 결과를 얻었습니다. –

+0

if 문을 사용하지 않으면 어떻게됩니까? 제대로 기록됩니까? –

답변

1

스토리 보드의 표 셀의 기본 셀 스타일은 '사용자 지정'유형입니다. 그러면 다른 유형의 컨트롤을 추가 할 수있는 빈 셀이 생깁니다.

레이블을 셀로 끌어서 텍스트를 변경 한 경우 UITableViewCell의 사용자 지정 스타일을 사용하고있을 가능성이 큽니다.

textLabel 속성은 Custom, Custom 또는 Basic과 같은 유형의 셀에서만 사용할 수 있습니다.

따라서 이러한 스타일이 요구 사항을 충족하는지 대신 먼저 확인해야합니다.

실제로 셀의 사용자 지정 유형이 필요한 경우 UITableViewCell의 하위 클래스를 만들고 레이블에 액세스 할 수있는 콘센트를 만들어야합니다.

+0

와우! jove로 당신은 그것을 얻은 것 같아요! 이봐, 당신은 어딘가에 문서의 앞쪽과 중앙에있을 것이라고 생각할 것이다. 아마 UITableViewClass 레퍼런스의 토론 섹션에있는 라인과 같을 것입니다. 내가 물어볼 수 있다면 어떻게 알았습니까? –

+1

셀이 존재하여 didSelectRowAtIndexPath가 발생했기 때문에 그 원인이 가장 많았습니다. 따라서 textLabel이 null이면 textLabel은 실제로 존재하지 않습니다. :) –

관련 문제