我有麻煩讓我的子視圖正確調整使用Autolayout。爲了說明我的觀點,我整理了一個簡約的例子。Cocoa Autolayout和子視圖調整大小
首先,我創建了一個新的NSViewController並添加了一個子視圖(在這個特殊情況下是一個NSTextView)並添加了Autolayout約束。
我加入自定義視圖我MainMenu.xib並設置自動佈局約束太多。
最後,我創建了視圖控制器的實例,並把它認爲我的自定義視圖中。
#import "AppDelegate.h"
#import "MyViewController.h"
@interface AppDelegate()
@property (weak) IBOutlet NSView *customView;
@end
@implementation AppDelegate
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
MyViewController *myViewController = [[MyViewController alloc] initWithNibName:@"MyViewController" bundle:nil];
[self.customView addSubview:myViewController.view];
myViewController.view.frame = self.customView.bounds;
}
@end
由於「Autoresizes子視圖」在這兩個XIB文件被選中,我預計NSTextView當我調整主窗口調整大小。但是,它只是停留在原地。
缺少什麼我在這裏?這讓我困惑了幾天。
感謝, 邁克爾·克努森
如果你看看我的文章的第一張截圖,看來該NSTextView(或者更準確地說是在NSScrollView其所嵌入)是我的視圖控制器的IBOutlet中視圖的子視圖。自動佈局約束與該觀點有關,對吧? –
我其實是通過編程來做實驗,但不知何故,最終導致我無法調整任何東西。在編程添加視圖後,很難簡單地「抓住」窗口邊角。猜猜現在是時候回到文檔並再次嘗試。 –
是的,自動佈局約束是關於文本視圖的*視圖*(即父視圖)的。 – SevenBits