Cacao NSView changer de redimensionnement automatique des propriétés
À l'aide de interface builder, vous pouvez sélectionner les coins d'un objet devrait tenir lors d'un redimensionnement. Comment pouvez-vous le faire par programmation?
- Veuillez noter que Apple a introduit un mise en page automatique du cadre pour le Lion.
Vous devez vous connecter pour publier un commentaire.
Voir le setAutoresizingMask: méthode de NSView et les associés le redimensionnement des masques.
Je trouve que le
autoresizingBit
les masques sont horriblement nommé, donc j'utilise une catégorie sur NSView pour rendre les choses un peu plus explicite:Qui peut ensuite être utilisé comme suit:
Chaque point de vue a le masque de drapeaux, contrôlée par la définition d'un la autoresizingMask propriété avec la OU les comportements que vous voulez de la le redimensionnement des masques. En outre, le superview doit être configuré pour redimensionner ses sous-vues.
Enfin, en plus de la base de masque défini d'options de redimensionnement, vous pouvez contrôler la mise en page de sous-vues par la mise en œuvre de -resizeSubviewsWithOldSize:
@e.James réponse m'a donné une idée pour créer simplement un nouveau enum avec de plus en plus familiers de nommage:
Aussi, d'après mes recherches, j'ai découvert que @James.s a un bug grave dans la NSView ajouts. Le système de coordonnées dans le Cacao a une flippée de l'axe y dans les conditions de l'iOS système de coordonnées. Par conséquent, afin de résoudre le bas et le haut de la marge, vous devez écrire:
Du cacao docs: