objective-c - 自动布局:当窗口大小调整时如何更改框架的原点?

标签 objective-c cocoa autolayout nswindow nslayoutconstraint

我有一个使用自动布局NSWindow。它只包含一个放置标签 (NSTextField) 的 View 。该标签中的文本是动态的,并且会在我的应用程序运行时发生变化。当插入较长的文本时,由于垂直和水平限制,我的窗口可以完美地调整大小。

我的问题是,我的窗口应该位于屏幕的右上角(就在菜单栏下方)。当我的窗口在满足限制的情况下调整大小时,我需要在屏幕上重新定位我的窗口。

最好的方法是什么?

最佳答案

在 applicationDidFinishLaunching: 方法中注册 windowDidResizeNotification 以处理调整大小事件:

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
   [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(handleNotification:) name:NSWindowDidResizeNotification object:nil];    //register resize notification

}

然后在通知处理程序方法中,使用您之前使用的代码将窗口设置为右上角。

- (void)handleNotification: (id) sender
{
    //code to set window to top right corner
}

我最近的一个回答可以帮助你:https://stackoverflow.com/a/19677527/1987246

关于objective-c - 自动布局:当窗口大小调整时如何更改框架的原点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19668359/

相关文章:

objective-c - 在运行时动态修改 block

cocoa - 为 Cocoa 创建基于日历的日期选择器的最佳途径?

macos - 我应该在 Mac 应用程序上使用 Growl 吗?

objective-c - 为什么基于自动布局的 NSWindow 在缩放后重绘不正确?

ios - 自动布局 : how to center a group with two/one intrinsic elements?

ios - 将 CAShapeLayer 添加为不可见的子层

objective-c - 如何确定应用程序何时变为事件状态和非事件状态?

ios - 在方法 objective-c 之外保留数组数据

objective-c - 雪豹的默认窗口阴影尺寸?

ios - 自动布局 UILabel