gpt4 book ai didi

objective-c - 相同的命令,不同的结果 setFrame : NSView

转载 作者:行者123 更新时间:2023-12-03 17:59:07 38 4
gpt4 key购买 nike

我遇到了一个我认为非常奇怪的问题。

首先,我的应用程序使用以下示例命令在屏幕上移动 UI 元素:

    [view setFrame:NSRectFromCGRect(CGRectMake(0, 0, 0, 0))]; 

我让我的用户可以使用此命令将应用程序的 NSWindow 大小调整为其他大小:

    [self.window setFrame:NSRectFromCGRect(CGRectMake(0, 0, 0, 0)) display:YES animate:YES];

当处于“调整大小模式”时,我显然将每个 setFrame 命令更改为适当的坐标系。

但是,存在一个问题:当(如果)用户再次单击按钮切换回原始 NSWindow 大小,并且应用程序再次执行 UI 移动时,移动的 View 不在该位置他们应该在。

澄清一下:我的 UI 移动代码在正常或调整大小模式下一遍又一遍地运行良好。但是,如果我从一种切换到另一种,某些项目(不是全部)会发生变化。

什么可能导致这种奇怪的行为?我使用完全相同的命令(在每个屏幕分辨率内),并且 NSLogs 确认 UI 元素位于我指定的位置;但是,这个位置显然不是我想要移动到的位置。

有人遇到过类似的问题吗?

最佳答案

您可能在 Interface Builder 中设置了某种自动调整大小 mask ,这会干扰您的手动放置。进入您的 Nib 并卸下尺寸检查器中的所有 Spring 和支柱。不过,如果可能的话,您应该让自动调整大小来处理放置,或者转向 10.7 中引入的自动布局。

关于objective-c - 相同的命令,不同的结果 setFrame : NSView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9204132/

38 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com