NSButtoncell의 현재 상태를 NSMatrix에서 얻습니다
문제
NSMatrix를 키패드로 사용하고 호출합니다.
[selectedCell setEnabled:NO];
[selectedCell setTransparent:YES];
키가 선택된 경우 (동일한 작업이 다시 수행되는 것을 방지하기 위해). 그러나 나는 또한 완료 될 때 전체 선택을 '뒤집는'옵션, 즉 모든 삭제 세포와 나머지를 숨기고 있습니다 (선택되지 않은) 하나.
내 행렬의 모든 셀을 루프하고 다음과 같은 것을 사용하여 활성화 된/투명 상태를 확인할 수 있습니까?
if([selectedCell isEnabled] == NO)
NSLog(@"the cell is disabled");
if([selectedCell isTransparent] == YES)
NSLog(@"the cell is transparent");
위의 코드는 물론 작동하지 않지만 아이디어를 얻습니다 ... 나는 상대적으로 초보자이므로 모든 도움이 감사하겠습니다. 감사 :-)
해결책
NSMATRIX를 통해 얻을 수 있습니다 열의 수 그리고 행의 수, 그리고 특정 행과 열의 셀. 그래서, 몇 가지에서 그렇게하십시오 for
루프.
태그로 이동하는 것은 작동 할 수 있지만 모든 셀에 자체 태그를 제공하고 (표시되는 예에서) 모든 태그가 시리즈에 있습니다. 홀수 숫자, 중복 태그 또는 태그가없는 셀은 문제를 일으킨다.
다른 팁
나는 사용한다 NSNumber
무선 그룹의 선택된 색인을 저장하려면 ( NSMatrix
인터페이스 빌더에서). 이것을 실현하기 위해 나는 "선택된 색인"을 설정하는 멤버 변수를 합성합니다. 제본 라디오 그룹의.
@interface MyClass {
NSNumber* m_selectedIndex;
}
@property (readwrite, assign) NSNumber* selectedIndex;
또한, 나는 인간을 읽을 수 있도록 열거를 추가했습니다.
typedef enum { APPLE = 0, PLUM = 1 } SELECTION_STATE;
업데이트!! 좋아, 나는 이것을 다음과 같이 해결했다.
for(key=1; key <= 16; key++)
if([[numericKeypad cellWithTag:key] isTransparent] == YES)
// ...or alternatively...
// if([[numericKeypad cellWithTag:key] isEnabled:NO])
{
[[numericKeypad cellWithTag:key] setTransparent:NO];
[[numericKeypad cellWithTag:key] setEnabled:YES];
}
else
{
//...disable it...
}
내가 꽤 가까이있는 것 같지만, 나는 하루 종일 경험이 없어 올바른 구문을 찾으려고 노력했다. 어쨌든 감사합니다 :-)
제휴하지 않습니다 StackOverflow