Как автоматически изменить размер кнопки - PullRequest
0 голосов
/ 09 июня 2011

У меня есть пользовательское представление, содержащее NSImageView (myImageView) и NSButton (myButton).Когда пользователь изменяет размер окна (используя щелчок мыши и перетаскивая его в нижний правый угол окна), myImageView и myButton автоматически изменяют размер.Но пользовательский вид отличается от оригинального.Как это исправить?Пожалуйста, помогите мне.

Вот мой код:

В appDelegate.m

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
// Insert code here to initialize your application 
[window makeKeyWindow];
[window setFrameTopLeftPoint:NSMakePoint(0, 576)];
[window setFrame:NSMakeRect(0, 0, 768, 576) display:YES];

[window setBackgroundColor:[NSColor clearColor]];
[window center];

TestView *testView = [[TestView alloc]initWithFrame:NSMakeRect(0, 0, 768, 576)];
[testView setAutoresizingMask:NSViewWidthSizable|NSViewHeightSizable];
[testView setAutoresizesSubviews:YES];
[window setContentView:testView];}

В TestView.m

- (void)drawRect:(NSRect)dirtyRect {
// Drawing code here.
NSImageView *subView = [[NSImageView alloc]initWithFrame:NSMakeRect(0, 0, 768, 576)];
[subView setImage:[NSImage imageNamed:@"Copenhagen.jpg"]];
[subView setAutoresizingMask:NSViewWidthSizable|NSViewHeightSizable];
[subView setImageScaling:NSImageScaleProportionallyDown];
[self addSubview:subView];
[subView release];

NSButton *subButton = [[NSButton alloc]initWithFrame:NSMakeRect(70, 100, 100, 40)];
[subButton setTitle:@"Click"];
[subButton setAutoresizingMask:NSViewWidthSizable|NSViewHeightSizable|NSViewMaxXMargin|NSViewMaxYMargin|NSViewMinXMargin|NSViewMinYMargin];
[self addSubview:subButton];
[subButton release];
[window setContentView:temp];}

Большое спасибо.

1 Ответ

0 голосов
/ 09 июня 2011

Вы не хотите, чтобы левое поле (NSViewMinXMargin) и нижнее поле (NSViewMinYMargin) были гибкими, поэтому вы должны удалить их из маски авторазмера кнопки.Вы, вероятно, не хотите, чтобы размер самой кнопки был изменен, поэтому на самом деле используйте только

NSViewMaxXMargin | NSViewMaxYMargin

в качестве маски авторазмера.

View Programming Guide хороший справочник, чтобы узнать об авторазмерах масок.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...