J'essaie de créer une sous-classe personnalisée de NSScroller. J'ai créé la classe et l'ai définie comme le défilement vertical sur un NSScrollView dans IB. Lorsque j'exécute mon projet, la méthode drawRect:
est appelée pour ma sous-classe, donc je sais qu'elle est correctement connectée.Comment faire en sorte que ma sous-classe NSScroller ait une largeur différente?
Maintenant, comment est-ce que je change la largeur de mon nouveau NSScroller de fantaisie? Peu importe ce que je fais pour ses limites et son cadre, il veut toujours dessiner dans un rectangle de 15 pixels de large (la taille du NSScroller par défaut).
J'ai essayé redéfinissant cette méthode, mais le problème est que NSScrollView appelle toujours cette méthode de classe sur NSScroller, au lieu de ma sous-classe personnalisée. Il existe une variable _verticalScrollerClass privée dans NSScrollView qui peut être modifiée, mais la substitution de variables privées n'est pas prise en charge. –
Hmm ... cela peut arriver parce qu'il est archivé par IB à cette taille (originale). Avez-vous essayé de le programmer par programme pour voir si cela aide? –
J'ai. Tout ce que j'ai lu suggère que le dépassement de ce ivar privé est la seule voie à suivre. J'ai fini par créer ma propre vue pour dupliquer la fonctionnalité de la barre de défilement et cacher complètement la barre de défilement par défaut. –