2014-01-07 4 views
-1

간단한 서클 앤 크로스 게임을 만들고 싶습니다. 나는 9 개 버튼을 정의 ONE 콘센트에 연결을 시도 : 나는 무작위로 하나의 숫자를 선택버튼의 제목을 설정하는 방법은 무엇입니까?

이제
@property (weak) IBOutlet NSButton *buttons; 

- 컴퓨터 움직임이다 9 내가 방법으로 버튼의 제목을 설정하려면 :

[_buttons setTitle:@"o"]; 
[_buttons setTitle:@"x"]; 

연결에 문제가 있다고 생각합니다. 하나의 버튼을 여러 개의 콘센트에 연결할 수 있습니다.

태그로 단추를 지정하고 9 개의 단추를 하나의 콘센트에 연결할 수 있습니까?

컬렉션보기 항목을 사용해야합니까? 어떻게해야합니까?

두 번째 아이디어는 각 버튼에 9 개의 콘센트를 정의하는 것이지만 나는 그것을 피하고 싶습니다.

+1

내 직감은 IB 출입구가 일대 다가 아니라고 말합니다. – millimoose

+0

모든 버튼의 제목을 설정합니까? (표시된 코드) –

+0

또한 결국 9 개의 콘센트가 필요하지 않습니까? 누가 어떤 버튼을 발견했는지 알아야합니다. (또한 무작위로 선택하는 것은 Tic-Tac-Toe의 전략에별로 도움이되지 않습니다. D) – millimoose

답변

2

버튼이 포함 된 NSMatrix을 사용할 수 있습니다. Interface Builder에서 라디오 그룹을 드롭 한 다음 셀 스타일을 라디오에서 푸시로 변경하십시오. 그런 다음 매트릭스에 단일 콘센트를 사용할 수 있습니다. 이 같은 조치 방법에 NSMatrix 후크, 클릭 수에 대한 응답으로 제목을 변경하려는 경우 하나 개의 버튼의 제목을 변경하려면

[[_buttons cellAtRow: 0 column: 2] setTitle: @"x"]; 

(추가 :

같은 뭔가를 할 수 :

- (IBAction) pushed:(id)sender 
{ 
    NSMatrix* matrix = (NSMatrix*) sender; 
    if ([matrix isKindOfClass: [NSMatrix class]]) // paranoia 
    { 
     NSButtonCell* hitCell = [matrix selectedCell]; 
     [hitCell setTitle: @"x"]; 
    } 
} 
+0

''[button cellWithTag : (int) sender] setTitle : @ "x"];'첫 번째로 각 버튼을 메소드에 연결할 수 있습니까? – user3133543

+1

보낸 사람을 정수로 형 변환하면 정수가되지 않습니다. 그러나 여러분은 단추에 태그를 할당하고'[보낸 사람 태그]'를 사용할 수 있다고 생각합니다. 사실, 클릭 한 버튼이 x가되도록하려면'[sender setTitle : @ "x"]'? – JWWalker

+0

작동하지 않습니다. 먼저 NSMatrix에 연결되고 NSButton (인수로)에 서로 연결된 버튼의 행렬은 버튼을 사용할 수 없도록하므로 클릭 할 수 없습니다. 매트릭스에 단일 콘센트를 연결 한 다음 NSButton에 각 단추를 연결할 수 없다고 가정합니다. – user3133543

관련 문제