问题
How do you set the size of NSView programmically e.g.
-(void)awakeFromNib {
self.frame.size.width = 1280; // Does nothing...
self.frame.size.height = 800; // ...neither does this.
...
The size setup in the nib (of Mac OSX) works OK, but I want to do it in code.
回答1:
When you call self.frame, it returns the data in the frame, and not a pointer. Therefore, any change in the result is not reflected in the view. In order to change the view, you have to set the new frame after you make changes:
- (void)awakeFromNib {
NSRect f = self.frame;
f.size.width = 1280;
f.size.height = 800;
self.frame = f;
//...
}
回答2:
Use the method -setFrameSize: or -setFrame:
回答3:
To programmatically setup the app's size (that is what I wanted to do) you need to do this:-
- (void)awakeFromNib {
...
NSWindow* w = [self window];
NSRect f;
f.size.width = 1280;
f.size.height = 800;
[w setFrame:f display:YES];
}
来源:https://stackoverflow.com/questions/4472920/how-to-set-nsview-size-programmatically