我发现了如何以编程方式在Cocoa中创建一个窗口,但无法弄清楚如何对事件做出反应.该窗口不响应退出请求或按钮单击.
我尝试添加以下控制器并使用setDelegate/setTarget而没有运气:
@interface AppController : NSObject {
}
- (IBAction)doSomething:(id)sender;
@end
@implementation AppController
- (IBAction)doSomething:(id)sender;
{
printf("Button clicked!\n");
}
@end
int main(int argc, char **args){
NSRect frame = NSMakeRect(0, 0, 200, 200);
AppController *controller = [[AppController alloc] init];
> [[NSApplication sharedApplication] setDelegate:controller];
NSWindow* window = [[NSWindow alloc] initWithContentRect:frame
styleMask:NSBorderlessWindowMask|NSClosableWindowMask|NSMiniaturizableWindowMask|NSResizableWindowMask
backing:NSBackingStoreBuffered
defer:NO];
[window setBackgroundColor:[NSColor blueColor]];
NSButton *button = [ [ NSButton alloc ] initWithFrame: NSMakeRect( 30.0, 20.0, 80.0, 50.0 ) ];
[ button setBezelStyle:NSRoundedBezelStyle];
[ button setTitle: @"Click" ];
> [ …Run Code Online (Sandbox Code Playgroud) 我正在为我的Cocoa应用程序进行手动布局,在某些时候我需要弄清楚NSView子类的内部大小是什么.(例如,我的子视图在NSBox中可用的高度是多少?)
其中一个原因是我在左上角使用原点坐标系,需要执行坐标转换.
到目前为止,我无法找到达到这个尺寸的方法,如果有人能给我一个提示,我会很高兴.
我想知道的另一个非常有趣的属性是视图的最小尺寸.