你如何发送消息到窗口

时间:2013-12-21 22:05:36

标签: objective-c cocoa

我正在从一本关于Cocoa的自助书中挑战,这就是我被困的地方。 我正在尝试从单个文本字段调整窗口大小。

#import "DelegateAppDelegate.h"

@implementation DelegateAppDelegate

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
    // Insert code here to initialize your application
}

//some tip i don't understand from the challenge
-(NSSize)windowWillResize:(NSWindow *)sender toSize:(NSSize)frameSize;
{
    NSSize mySize = NSMakeSize(400, 200);
    NSLog(@"mySize is %f wide and %f tall", mySize.width, mySize.height);
    return mySize;
}

//button that will send the value from the text field
- (IBAction)userResize:(id)sender {

    NSInteger size = [_userSelectedSize intValue];
    NSSize userInputSize = NSMakeSize(size, (size/2)); 
    //there is only one text field named userInputSize. the size is halved
    //for the height

    NSLog(@"width = %f, height = %f", userInputSize.width, userInputSize.height);
    [_userSelectedSize setStringValue:@"updated"];

    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~THIS IS WHAT I NEED HELP WITH
    [windowName setHeigth:userInputSize.heigth setWidth:userInputSize.width]
}
@end

我不希望发送实际消息的信息,因为我知道这些参数很可能是错误的,但我想知道在哪里可以找到为窗口名称写的内容。

请注意:问题是我不知道在哪里发送消息。

我的其中一个文件名为MainMenu.xib,如果有帮助的话。

1 个答案:

答案 0 :(得分:1)

  

我不希望发送实际消息的信息,因为我知道这些参数很可能是错误的,但我想知道在哪里可以找到为窗口名称写的内容。

Windows没有名称。

一个窗口有一个标题,但是显示给用户 - 你不能用它来识别窗口。

您需要的是一种将笔尖中的窗口连接到代码的方法。您需要在代码中使用某种插座来插入窗口。

总之: outlet

你可能已经有了一个。 Xcode的非基于文档的应用程序模板在应用程序委托中包含window出口,默认情况下已连接。查看DelegateAppDelegate标头以确保。

因此,您只需将setFrame:display:消息发送至self.window