클릭하지 않고도 값을 변경할 수있는 CPTableColumn을 만들려고합니다. 예를 들어 테이블에 슬라이더를 표시하려고하면 드래그하면 행의 테이블 값이 변경됩니다.카푸치노 사용자 정의 편집 가능한 테이블 열을 만드는 방법
CPTableView를 살펴보면 CPTextFields 및 CPButtons가 지원되지만 다른 컨트롤을 사용하여 값의 인라인 편집을 수행하는 방법을 잘 모르겠습니다.
위의 사항에 대한 도움이 될 것입니다.
클릭하지 않고도 값을 변경할 수있는 CPTableColumn을 만들려고합니다. 예를 들어 테이블에 슬라이더를 표시하려고하면 드래그하면 행의 테이블 값이 변경됩니다.카푸치노 사용자 정의 편집 가능한 테이블 열을 만드는 방법
CPTableView를 살펴보면 CPTextFields 및 CPButtons가 지원되지만 다른 컨트롤을 사용하여 값의 인라인 편집을 수행하는 방법을 잘 모르겠습니다.
위의 사항에 대한 도움이 될 것입니다.
당신은 쉽게 다음과 같은 테이블보기로 슬라이더를 추가 할 수 있습니다 : 당신이 값이 숫자 확인으로
이var dataColumn = [[CPTableColumn alloc] initWithIdentifier:"Slider"];
[table addTableColumn:dataColumn];
[[dataColumn headerView] setStringValue:"Slider (Editable)"];
[dataColumn setEditable:YES];
[dataColumn setWidth:140];
[dataColumn setDataView:[[CPSlider alloc] initWithFrame:CGRectMakeZero()]];
슬라이더는 자동으로 데이터 소스 또는 한 바인딩에서 읽은 셀 값을 반영합니다 .
유감스럽게도 슬라이더가 버튼이 아니기 때문에 테이블에 tableView:setObjectValue:forTableColumn:row:
메시지가 전송되지 않습니다. CPSlider
을 하위 클래스 YES
에서 isKindOfClass:[CPButton class]
으로 반환 할 수 있습니다.
이것은 해킹처럼 느껴지므로 장기적인 솔루션으로는 코코아가 CPSlider 셀을 처리하는 방법을 확인하십시오. 코코아가 슬라이더에 tableView:setObjectValue:forTableColumn:row:
을 전송하면 feature request을 게시하고 작은 코코아 테스트 앱을 포함시켜 보여줍니다. 카푸치노는 이러한 문제에서 코코아와 같은 방식으로 일하기 위해 노력합니다.
고마워요! 이제는 해킹이 제대로 작동합니다. CPButton과 대조적으로 CPControl을 확인하지 않는 것이 이상하다고 생각합니다. 나는 그들에게 기능 요청을 던질 것이다. – zachzurn