NSTabView com cor de fundo

omo discutido em outro lugar, o NSTabView não possui o método setBackgroundColor e a subclasse de NSTabView, e o uso de um drawRect para controlá-lo não funciona mais - pois ele não pinta os 10% superiores, o bit logo abaixo do botão de controle segmentad

Agora estou um pouco surpreso com a quantidade de trabalho que tive para resolver isso; Vej

code:https: //github.com/dirkx/CustomizableTabView/blob/master/CustomizableTabView/CustomizableTabView.

e estou me perguntando se eu segui o caminho errado. E como fazer isso melhor e mais simples:

The NSSegmentStyleTexturedSquare parece me render um controle segmentado semitransparente. O que significa que preciso fazer um trabalho extra para ocultar as linhas do painel (linha 240, 253

Existe uma maneira melhor de fazer isso ? I.e. negar sua transparência?

ou existe uma maneira de usar o botão de escolha segmentado real / original?

Acho que as cores de que eu preciso - como a [NSColor windowBackgroundColour] não estão definidas para nada útil (ou seja, essa é transparente) - então agora eu as codifico (linhas 87, 94).

Existe uma maneira melhor de fazer isso

Acho que preciso de um monte de métodos fofos para manter as coisas sincronizadas (linhas 128, 134 etc.

isso pode ser evitado?

Acho que imitar a inteligência no redimensionamento significa que preciso manter um olho constante na caixa de controle segmentada e removê-la / redimensioná-la. E mesmo assim - não é tão bom quanto o original

existe uma maneira melhor de fazer isso do que a linha 157 - ou seja, ouvir falar em redimensionar? Em vez de fazer isso o tempo todo?

O segementControl desaparece quando o foco é removido da janela - ao contrário do McCoy rea

pode ser facilmente evitado? existe uma maneira barata de rastrear isso?

Ou essa é a abordagem errada - e devo focar apenas em um buraco transparente aqui - e deixar o NSTabViewItem desenhar um plano de fundo? Mas, em qualquer caso - ainda tenho o problema com a caixa de controle segmentado - ou existe uma maneira de tornar isso o padrão novament

ao tentar isso - fico preso nos 20 a 30 pixels superiores desenhados na cor de fundo das janelas 'reais' - que é 'transparente' - e, portanto, a cor não será executada até o topo ou atrás da barra de segmentos e até o painel - mas, em vez disso, pare 8 pixels abaixo da parte inferior dos controles de segmento.

Feedbackback apreciado - como isso parece tão distante / subótimo para coisas tão simples - Muito obrigado. Brownie aponta para hackear / bifurcar o código do github :) :) :) Como uma linha de código em execução, diz mais que mil palavra

Dw.

questionAnswers(3)

yourAnswerToTheQuestion