11

你如何以编程方式设置 NSView 的大小,例如

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

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

4

3 回答 3

19

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

- (void)awakeFromNib {
    NSRect f = self.frame;
    f.size.width = 1280;
    f.size.height = 800;
    self.frame = f;
    //...
}
于 2010-12-17T20:54:47.123 回答
8

使用方法 -setFrameSize: 或 -setFrame:

于 2010-12-17T17:27:54.367 回答
4

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

- (void)awakeFromNib {
    ...
    NSWindow* w = [self window];
    NSRect f;
    f.size.width  = 1280;
    f.size.height = 800;
    [w setFrame:f display:YES];
}
于 2010-12-18T06:20:25.883 回答