Mac OS学习二:NSButton和NSTextView

本人喜欢先纯代码来熟悉各类基础控件,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一同出现。


Mac OS学习二:NSButton和NSTextView_第1张图片

并且自己实现自动滚动的效果


Mac OS学习二:NSButton和NSTextView_第2张图片

关于NSButton和NSTextView的UI渲染问题,在接下来的学习中继续跟进。

个人学习整理分享,不喜勿喷,谢谢!!

你可能感兴趣的:(Mac OS学习二:NSButton和NSTextView)