2011-10-28 43 views
4

的高度我有一個的NSView,有NSImageView在我寫的一個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的寬度和高度?

回答

7

任何視圖(NSView,NSImageView等)的大小是view.frame.sizeview.bounds.size。 在這兩種情況下,它都是一個相同的NSSize結構。你可以這樣寫代碼:

NSSize size = newImageView.frame.size; 
NSLog(@"size: %@", NSStringFromSize(size)); 
NSLog(@"size: %f x %f", size.width, size.height); 

要改變它,你需要更新視圖frame屬性:

NSRect frame = view.frame; 
frame.size = NSMakeSize(<#new width#>, <#new height#>); 
view.frame = frame; 
2

嘗試使用- (NSRect)bounds方法。

+0

還是'frame'方法。 –