2011-02-01 5 views
3

NSToolbar에 NSComboBox가 있으며 데이터 소스 및 대리인에게 메시지를 보내려합니다.NSToolbar에서 데이터 소스에 메시지를 보내고 위임하는 방법 NSComboBox를 가져 오는 방법

내 수업은 NSComboBoxDelegateNSComboBoxDataSource 개의 프로토콜을 사용합니다. 나는 또한 다음과 같은 데이터 소스 및 위임 방법은 그들에 브레이크 포인트를 가지고 구현이

NSRect comboBoxRect = NSMakeRect(0, 0, 175, 20); 
    NSComboBox *sourceComboBox = [[NSComboBox alloc] initWithFrame:comboBoxRect]; 
    [sourceComboBox setDataSource:self]; 
    [sourceComboBox setDelegate:self]; 
    [sourceComboBox setUsesDataSource:YES]; 
    [sourceComboBox setEditable:NO]; 

    NSToolbarItem *sourceComboBoxItem = [[NSToobarItem alloc] initWithItemIdentifier:@"MyID"]; 
    [sourceComboBoxItem setView:sourceComboBox]; 
    [sourceComboBoxItem setMinSize:NSMakeSize(175*1.2, SEGMENT_HEIGHT)]; 
    [sourceComboBoxItem setMaxSize:NSMakeSize(175*1.2, SEGMENT_HEIGHT)]; 
    [sourceComboBoxItem setDelegate:self]; 
    [sourceComboBoxItem setTag:4]; 

처럼 내 콤보 상자를 만들 수 있지만 아무 것도 이러한 방법으로 전송되지되고있다.

- (id)comboBox:(NSComboBox *)aComboBox objectValueForItemAtIndex:(NSInteger)index; 
- (NSInteger)numberOfItemsInComboBox:(NSComboBox *)aComboBox; 
- (void)comboBoxSelectionDidChange:(NSNotification *)notification; 

내가 뭘 잘못하고 있을지에 대한 제안이 있으십니까? 고맙습니다.

답변

1

인터페이스 빌더에서 콤보 상자를 만든 다음 콤보 상자 셀의 데이터 원본과 콤보 상자의 대리자로 내 사용자 지정 클래스를 설정하여 작업 할 수있었습니다. 대신 NSComboBoxDataSource을 사용하는 대신 NSComboBoxCellDataSource을 채택했습니다.

첫 번째 방법이 작동하지 않는 이유는 모르겠지만이 새로운 방법은 문제가없는 것 같습니다.