Mac_Os开发第一天

Mac_Os新手引导资料下载

学习Mac开发第一节 认识 NSButton

NSButton 外观与属性

打开storyboard 面版,发现NSButton 有很多类型。先在ViewController 拖个PushButton 居中显示看看功能吧


Mac_Os开发第一天_第1张图片

本人非常推荐可视化编程,所见即所得。大量减少了ui的代码量,维护也非常方便。

如果你基本弄明白了图上的属性,用代码写起来就非常简单,下面就再用代码创建一个按钮

//创建按钮

NSButton *pushButton = [[NSButton alloc]initWithFrame:CGRectMake(self.view.frame.size.width/2-44,self.view.frame.size.height/2 + 30, 88, 88)];

//按钮样式

pushButton.bezelStyle = NSRoundedBezelStyle;

//是否显示背景 默认YES

pushButton.bordered = YES;

//按钮的Type

[pushButton setButtonType:NSButtonTypeMomentaryPushIn];

//设置图片

pushButton.image = [NSImage imageNamed:@"close.png"];

//按钮的标题

[pushButton setTitle:@"我是按钮"];

//是否隐藏

pushButton.hidden = NO;

//设置按钮的tag

pushButton.tag = 100;

//标题居中显示

pushButton.alignment = NSTextAlignmentCenter;

//设置背景是否透明

pushButton.transparent = NO;

//按钮初始状态

pushButton.state = NSOffState;

//按钮是否高亮

pushButton.highlighted = NO;

//把当前按钮添加到视图上

[self.view addSubview:pushButton];

cooca mac 的坐标是在左下角,跟iOS起始坐标在左上角是有区别!



Mac_Os开发第一天_第2张图片
效果图

标题的富文本

NSMutableAttributedString *nameAttribute = [[NSMutableAttributedString alloc] initWithString:@"花名:胜任"];

NSRange range = NSMakeRange(0, 3);

[nameAttribute addAttribute:NSForegroundColorAttributeName

value:[NSColor redColor]

range:range];

[nameAttribute addAttribute:NSFontAttributeName

value:[NSFont systemFontOfSize:14]

range:range];

[nameAttribute fixAttributesInRange:range];

[pushButton setAttributedTitle:nameAttribute];


Mac_Os开发第一天_第3张图片
效果图

NSButton事件响应

1 拖拽大法:适用于不用传值,用法如图。

Mac_Os开发第一天_第4张图片

NSButton 的继承关系为 NSObject->NSResponder->NSView->NSControl->NSButton

2 拖拽大法二:可以传值,用法如图。


Mac_Os开发第一天_第5张图片
Mac_Os开发第一天_第6张图片

第三步 长按Control键,鼠标长按要push的按钮,拖拽到.m文件生成方法,代码如下

- (IBAction)pushAction:(id)sender {

[self performSegueWithIdentifier:@"pushIdentifier" sender:self];

 }

- (void)prepareForSegue:(NSStoryboardSegue *)segue sender:(nullable id)sender{

if ([segue.identifier isEqualToString:@"pushIdentifier"]) {

SecondViewController *second =  (SecondViewController*)segue.destinationController;

second.addressString = @"请输入";

      }

}

NSButton的类型定义在NSButtonCell类中。后续再学习NSButtonCell


学习Mac开发第二节 通过WebView加载网页

添加WebKit.framework


Mac_Os开发第一天_第7张图片

创建WebView对象

用拖拽大法拖个 myWebView对象

#import

#import

@interface ViewController : NSViewController

@property (weak) IBOutlet WebView *myWebView;

@end

加载URL路径

- (void)viewDidLoad {

[super viewDidLoad];

NSString *urlString = @"https://www.baidu.com";

[[self.myWebView  mainFrame ] loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:urlString]]];

}


Mac_Os开发第一天_第8张图片
加载效果图

常用方法

//刷新

[self.myWebView reload:self];

//返回上一页

[self.myWebView goBack:self];

//返回前一页

[self.myWebView goForward:self];

常用Delegate

//获取每次加载页面的request

- (void)webView:(WebView *)webView decidePolicyForMIMEType:(NSString *)type        request:(NSURLRequest *)request          frame:(WebFrame *)framedecisionListener:(id)listener{

NSLog(@"request=======%@",request);

}

//获取加载页面的Title

- (void)webView:(WebView *)sender didReceiveTitle:(NSString *)title forFrame:(WebFrame *)frame{

NSLog(@"title ===== %@",title);

}

//加载完成

- (void)webView:(WebView *)sender didFinishLoadForFrame:(WebFrame *)frame{

NSLog(@"~~~~~加载完成~~~~~");

}

//加载失败

- (void)webView:(WebView *)sender didFailLoadWithError:(NSError *)error forFrame:(WebFrame *)frame{

NSLog(@"~~~~~加载失败~~~~~");

}

学习Mac开发第三节 通过NSImageView加载图片

创建NSImageView

1 . 拖拽大法好 Autolayout 创建一个宽高160 *160 的NSImageView


Mac_Os开发第一天_第9张图片

创建是正方形的 运行后图片居然没有进行铺满。


Mac_Os开发第一天_第10张图片

修改下Scaling为None

Mac_Os开发第一天_第11张图片

运行效果如下


Mac_Os开发第一天_第12张图片


如何你想代码创建如下:

NSImageView *imageView = [[NSImageView alloc]initWithFrame:CGRectMake(self.view.frame.size.width/2-80, self.view.frame.size.height/2+80, 160, 160)];

2.读取资源图片

拖拽个avatarImageView属性对象

@property (weak) IBOutlet NSImageView *avatarImageView;

第一种方法

//加载本地图片,缓存加载图片

self.avatarImageView.image = [NSImage imageNamed:@"2.jpg"];

第二种方法

//加载本地图片 ,不缓存加载图片,常用大图片显示,

NSString *filePath = [[NSBundle mainBundle] pathForResource:@"2" ofType:@"jpg"];

self.avatarImageView.image = [[NSImage alloc]initWithContentsOfFile:filePath];

第三种方法

//加载网络图片

self.avatarImageView.image = [[NSImage alloc]initWithContentsOfURL:[NSURL URLWithString:@"http://img.blog.csdn.net/20161123152252486"]];

第四种方法 当然也支持大名鼎鼎的SDWebimage库

//SDWebimage

[self.avatarImageView sd_setImageWithURL:[NSURL URLWithString:@"http://img.blog.csdn.net/20161123152252486"]];

3.显示圆形图片

self.avatarImageView.image = [NSImage imageNamed:@"2.jpg"];

self.avatarImageView.imageScaling =  NSImageScaleNone;

self.avatarImageView.wantsLayer = YES;

self.avatarImageView.layer.masksToBounds = YES;

self.avatarImageView.layer.cornerRadius = 80.f;

self.avatarImageView.layer.borderWidth = 3.0;

self.avatarImageView.layer.borderColor = [[NSColor redColor] CGColor];

这个貌似跟iOS开发没什么区别 效果如下图


Mac_Os开发第一天_第13张图片

4.其他属性

//是否可以编辑

self.avatarImageView.enabled = YES;

//对齐方式

self.avatarImageView.imageAlignment = NSImageAlignCenter;

//    typedef NS_ENUM(NSUInteger, NSImageAlignment) {

//        NSImageAlignCenter = 0,

//        NSImageAlignTop,

//        NSImageAlignTopLeft,

//        NSImageAlignTopRight,

//        NSImageAlignLeft,

//        NSImageAlignBottom,

//        NSImageAlignBottomLeft,

//        NSImageAlignBottomRight,

//        NSImageAlignRight

//    };

你可能感兴趣的:(Mac_Os开发第一天)