- 关键类与方法:
- 在Objective - C开发Mac OS应用时,主要使用
NSWindow
类来操作窗口。NSWindow
类提供了设置窗口位置和大小的方法。
- 关键代码片段:
#import <Cocoa/Cocoa.h>
@interface AppDelegate : NSObject <NSApplicationDelegate>
@property (nonatomic, strong) NSWindow *window;
@end
@implementation AppDelegate
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
// 创建窗口
NSRect windowRect = NSMakeRect(100, 100, 400, 300);
self.window = [[NSWindow alloc] initWithContentRect:windowRect
styleMask:NSWindowStyleMaskTitled | NSWindowStyleMaskClosable | NSWindowStyleMaskMiniaturizable | NSWindowStyleMaskResizable
backing:NSBackingStoreBuffered
defer:NO];
// 设置窗口标题
[self.window setTitle:@"My Window"];
// 显示窗口
[self.window makeKeyAndOrderFront:nil];
}
@end
- 主要步骤解释:
- 创建窗口矩形:
NSRect windowRect = NSMakeRect(100, 100, 400, 300);
这行代码使用NSMakeRect
函数创建了一个NSRect
结构体,该结构体定义了窗口的位置和大小。NSMakeRect
函数的四个参数分别是窗口左上角的x
坐标(这里是100)、y
坐标(这里是100)、宽度(这里是400)和高度(这里是300)。
- 初始化窗口:
self.window = [[NSWindow alloc] initWithContentRect:windowRect styleMask:NSWindowStyleMaskTitled | NSWindowStyleMaskClosable | NSWindowStyleMaskMiniaturizable | NSWindowStyleMaskResizable backing:NSBackingStoreBuffered defer:NO];
使用initWithContentRect:styleMask:backing:defer:
方法初始化窗口。contentRect
参数传入前面创建的窗口矩形,styleMask
设置窗口的样式,包括有标题、可关闭、可最小化、可调整大小等,backing
指定窗口的缓冲区类型,defer
表示是否延迟创建窗口,这里设置为NO
即立即创建。
- 设置窗口标题与显示窗口:
[self.window setTitle:@"My Window"];
设置窗口的标题。
[self.window makeKeyAndOrderFront:nil];
使窗口成为关键窗口并显示在屏幕最前端。