0

私はAutolayoutを使用してNSWindowを持っています。ラベル ( NSTextField ) が配置される単一のビューが含まれているだけです。このラベルのテキストは動的で、アプリケーションの実行時に変化します。長いテキストが挿入されると、垂直方向と水平方向の制約により、ウィンドウのサイズが完全に変更されます。

私の問題は、ウィンドウを画面の右上隅 (メニュー バーのすぐ下) に配置する必要があることです。制約を満たすときにウィンドウのサイズが変更されると、ウィンドウを画面上に再配置する必要があります。

これに最適なアプローチは何ですか?

4

1 に答える 1

1

windowDidResizeNotification を applicationDidFinishLaunching: メソッドに登録して、サイズ変更イベントを次のように処理します。

- (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

于 2013-10-30T09:18:10.763 に答える