#cocoa #nsview #appkit
#cocoa #nsview #appkit
Вопрос:
У меня есть NSView, в NSView есть NSImageView
в исходных кодах NSView
Я написал:
NSImage *image = [[[NSImage alloc] initWithContentsOfURL:url] autorelease];
NSImageView *newImageView = nil;
newImageView = [[NSImageView alloc] initWithFrame:[self bounds]];
[newImageView setImage:image];
[newImageView setAutoresizingMask:NSViewWidthSizable | NSViewHeightSizable];
Есть ли способ прочитать ширину и высоту NSView и NSImageView?
Ответ №1:
Размер любого представления (NSView, NSImageView и т.д.) равен view.frame.size
или . view.bounds.size
В обоих случаях это идентичная NSSize
структура. Вы можете написать код, подобный этому:
NSSize size = newImageView.frame.size;
NSLog(@"size: %@", NSStringFromSize(size));
NSLog(@"size: %f x %f", size.width, size.height);
Чтобы изменить его, вам необходимо обновить свойство view frame
:
NSRect frame = view.frame;
frame.size = NSMakeSize(<#new width#>, <#new height#>);
view.frame = frame;
Ответ №2:
Попробуйте этот - (NSRect)bounds
метод.