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

Rob*_*ain 9 macos nsview window-resize

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

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

nib(Mac OSX)中的大小设置工作正常,但我想在代码中执行此操作.

ugh*_*fhw 17

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

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

  • 非常感谢.我失去了生活的意志.现在不仅有事情开始发生,而且我发现这是一个错误的问题 - 答案如下. (4认同)

eri*_*icg 7

使用方法-setFrameSize:或-setFrame: