문제

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...
    }

내가 꽤 가까이있는 것 같지만, 나는 하루 종일 경험이 없어 올바른 구문을 찾으려고 노력했다. 어쨌든 감사합니다 :-)

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top