如何在Cocoa中动态添加组件

时间:2013-01-14 20:38:39

标签: objective-c macos cocoa user-interface

在Cocoa中是否可以以编程方式在视图上添加组件? UI是使用Xcode中的Interface Builder创建的。我只想添加一些NSButtons,但它的数量和位置将在运行时和用户输入中得知。

有谁知道它是否可行,如何完成以及如何定位这些ynamic组件?

1 个答案:

答案 0 :(得分:1)

当然有可能。 添加子视图:

UIView *subview = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 200, 200)]; // or UIButton, UIScrollView, or any other view-based class you make think of
[self addSubview:subview];

或者更准确地说,按钮会是这样的:

UIButton *aButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
aButton.frame = CGRectMake(0, 0, 100, 100);
[aButton addTarget:self action:@selector(methodName) forControlEvents:UIControlEventTouchUpInside];
[self addSubview:aButton]; // if done from the view self.view if done from the controller

啊,抱歉只是注意到它是OSX,而​​不是iOS,但基础是相同的。请改为查看NSButton类。

NSButton *aButton = [[NSButton alloc] initWithFrame:NSMakeRect(0, 0, 100, 100)]; // x, y, width, height

应该让你入门。