Mac_Os开发第一天

作者: 无沣 | 来源:发表于2017-05-27 17:53 被阅读183次

Mac_Os新手引导资料下载

学习Mac开发第一节 认识 NSButton

NSButton 外观与属性

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

本人非常推荐可视化编程,所见即所得。大量减少了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起始坐标在左上角是有区别!



效果图

标题的富文本

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];

效果图

NSButton事件响应

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

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

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


第三步 长按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

创建WebView对象

用拖拽大法拖个 myWebView对象

#import <Cocoa/Cocoa.h>

#import <WebKit/WebKit.h>

@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]]];

}

加载效果图

常用方法

//刷新

[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

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

修改下Scaling为None

运行效果如下

如何你想代码创建如下:

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开发没什么区别 效果如下图

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开发第一天

    本文链接:https://www.haomeiwen.com/subject/fyiqfxtx.html