如何以编程方式设置NSView大小?

时间:2010-12-17 17:03:45

标签: macos nsview window-resize

如何以编程方式设置NSView的大小。

    -(void)awakeFromNib {
        self.frame.size.width   = 1280;   // Does nothing...
        self.frame.size.height  = 800;    // ...neither does this.
        ...

nib(Mac OSX)中的大小设置正常,但我想在代码中进行。

3 个答案:

答案 0 :(得分:17)

当你调用self.frame时,它会返回帧中的数据,而不是指针。因此,结果中的任何更改都不会反映在视图中。要更改视图,您必须在进行更改后设置新框架:

- (void)awakeFromNib {
    NSRect f = self.frame;
    f.size.width = 1280;
    f.size.height = 800;
    self.frame = f;
    //...
}

答案 1 :(得分:8)

使用方法-setFrameSize:或-setFrame:

答案 2 :(得分:4)

要以编程方式设置应用程序的大小(这就是我想要做的),您需要这样做: -

- (void)awakeFromNib {
    ...
    NSWindow* w = [self window];
    NSRect f;
    f.size.width  = 1280;
    f.size.height = 800;
    [w setFrame:f display:YES];
}