本人喜欢先纯代码来熟悉各类基础控件,xib什么的等熟悉了很容易学会!
1,NSButton
NSButton是Mac OS 上的按钮控件,它的实现跟iOS的UIButton很类似(本身应该是UIButton是从NSButton演变过来的)。
NSButton *Btn = [[NSButton alloc] init];
Btn.title = @"确定";
Btn.frame = CGRectMake(180, CGRectGetMaxY(self.view.frame) - 50, 40, 20);
[self.view addSubview:Btn];
Btn.target = self;
[Btn setAction:@selector(getPhotoPlist)];
如上面引用的代码一样,这就是NSButton类对象的创建实现,其实它也可以写成
NSButton *btn = [NSButton buttonWithTitle:@"" image:[NSImage imageNamed:@""] target:self action:@selector(getPhotoPlist)];
[self.view addSubview:btn];
btn.frame = CGRectMake(180, CGRectGetMaxY(self.view.frame) - 50, 40, 20);
NSButton buttonWithTitle这样的+方法有不少,有带有image可以直接设置图片的,也可以就设置代理,title和响应方法。
值得注意的是,在macOS和iOS采用的坐标体系略有不同,在macOS采用的xy复数坐标系中的第一象限,不像iOS采用window的左上角为(0,0)点,而是左下角作为零点。
2,NSTextView
NSTextView是可编辑多行输入框。
txtView = [[NSTextView alloc] initWithFrame:CGRectMake(20, 20, self.view.frame.size.width - 40, self.view.frame.size.height - 80)];
[self.view addSubview:txtView];
txtView.backgroundColor = [NSColor redColor];
txtView.editable = NO;
txtView.string = @"hello Mac\n今天是星期一";
而且NSTextView与iOS的UITextView不同,它内中控件组成没有加入滚动条和自动滚动等,所以在使用时经常与NSScrollView一同出现。
并且自己实现自动滚动的效果
关于NSButton和NSTextView的UI渲染问题,在接下来的学习中继续跟进。
个人学习整理分享,不喜勿喷,谢谢!!