Pergunta

Eu criei uma subclasse personalizada de NSCell com um NSImageCell, alguns NSTextFieldCells, e um NSPopUpButtonCell.

Estou inicializar o celular pop-up usando:

    myPopUpCell = [[NSPopUpButtonCell alloc] init];
    [myPopUpCell setBordered:NO];
    [myPopUpCell setAutoenablesItems:NO];
    [myPopUpCell addItemsWithTitles:[NSArray arrayWithObjects:@"Item1", @"Item2", @"Item3"]];

E puxando-o em drawInteriorWithFrame:inView:

Tudo parece grande trabalho, exceto que ao clicar no celular aparecer durante a execução meu aplicativo a célula não aparecer. Todas as sugestões sobre o que pode estar errado?

Foi útil?

Solução

Desenhar a célula botão pop-up em drawInteriorWithFrame:inView: vai fazer exatamente isso; desenhá-lo, mas nada mais. Manipulação de eventos de clique não está relacionado ao desenho, então você vai ter que fazer algum trabalho em sua célula personalizado para interpretar os eventos do mouse, e se eles estão dentro do quadro que você está usando para o botão de pop-up, passá-las para a célula botão. Comece por subclasse dos métodos listados na documentação NSCell sob acompanhamento do rato, tais como –trackMouse:inRect:ofView:untilMouseUp:, e você deve ser capaz de descobrir o que é necessário para fazer o ato botão célula corretamente.

Dependendo do que você está fazendo você pode realmente encontrá-lo mais fácil de puxar a corda título mesmo, e usar apenas +popUpContextMenu:withEvent:forView: de NSMenu.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top