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

发布于 2024-10-08 00:27:31 字数 265 浏览 8 评论 0原文

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

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

(Mac OSX 的)笔尖中的大小设置工作正常,但我想用代码来完成。

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.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

溇涏 2024-10-15 00:27:32

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

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

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;
    //...
}
打小就很酷 2024-10-15 00:27:32

使用方法 -setFrameSize: 或 -setFrame:

Use the method -setFrameSize: or -setFrame:

烟柳画桥 2024-10-15 00:27:32

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

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

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];
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文