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