如何以编程方式设置NSView大小?
问题描述:
如何以编程方式设置NSView的大小,例如如何以编程方式设置NSView大小?
-(void)awakeFromNib {
self.frame.size.width = 1280; // Does nothing...
self.frame.size.height = 800; // ...neither does this.
...
笔尖(Mac OSX)中的大小设置工作正常,但我想在代码中完成。
答
当你调用self.frame,它返回的数据帧,而不是一个指针。因此,结果中的任何更改都不会反映在视图中。为了改变视图,你必须设置新的帧进行更改后:
- (void)awakeFromNib {
NSRect f = self.frame;
f.size.width = 1280;
f.size.height = 800;
self.frame = f;
//...
}
答
要通过编程设置应用程序的大小(这就是我想做的事),你需要做的是: -
- (void)awakeFromNib {
...
NSWindow* w = [self window];
NSRect f;
f.size.width = 1280;
f.size.height = 800;
[w setFrame:f display:YES];
}
非常感谢。我失去了生存的意志。现在不仅有一些事情开始发生,但我发现这是一个错误的问题 - 下面的答案是。 – 2010-12-18 06:15:36
@ughoavgfhw非常感谢你 – pregmatch 2014-10-21 04:43:37