我正在Aaron Hillegass的書Cocoa Programming for Mac中進行挑戰練習。 我想要做的是有一個窗口調整到寬度的兩倍高度。這是我的代碼到目前爲止。我在使用NSSize時遇到問題
#import "AppController.h"
@implementation AppController
-(id) init
{
[super init];
NSLog(@"init");
[window setDelegate:self];
return self;
}
-(NSSize) windowWillResize:(NSWindow*) sender
toSize:(NSSize)frameSize
{
int x;
NSSize mySize;
mySize.width = x;
mySize.height = 2*x;
NSLog(@"mySize is %f wide and %f tall",mySize.width,mySize.height);
return mySize;
}
這不能正常工作我確定我沒有正確使用NSSize類型。我不知道很多C,所以使用這個結構就是我認爲我犯了錯誤的地方。
附錄:我將上面的代碼更改爲以下內容。我知道我正在傳遞一個NSSize,所以沒有理由創建另一個(即mySize)。但是,我不明白爲什麼這會起作用。有人可以解釋。
#import "AppController.h"
@implementation AppController
-(id) init
{
[super init];
NSLog(@"init");
[window setDelegate:self];
return self;
}
-(NSSize) windowWillResize:(NSWindow*) sender
toSize:(NSSize)frameSize
{
//float x = 100;
//NSSize mySize;
//mySize.width = x;
//mySize.height = x * 2;
//NSLog(@"mySize is %f wide and %f tall",mySize.width,mySize.height);
NSLog(@"mySize is %f wide and %f tall",frameSize.width,frameSize.height);
return NSMakeSize(frameSize.width, frameSize.width * 2);
}
@end
我已經這樣做了,但是會發生什麼情況是,當我調整窗口大小時,它會捕捉到一個大小,並且不允許我調整大小;它不是動態調整大小。 – lampShade 2010-07-31 03:13:22
另外,我確實在Interface Builder中啓用了調整大小。 – lampShade 2010-07-31 03:16:25