在Cocoa中是否可以以编程方式在视图上添加组件? UI是使用Xcode
中的“界面生成器”创建的。我只想添加一些NSButtons
,但是在运行时和用户输入时将知道其数量和位置。
有谁知道这是可能的,怎么做到的以及如何定位这些动态组件?
最佳答案
当然可以。
添加子视图:
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
应该让您开始。