一步一步熟悉Mac app开发(六)之NSOutlineView

图片 19

阶段一、实现数据的在table
view上的显示、增加。(复习ArrayController)阶段二、通过使用tableview的委托方法tableViewSelectionDidChange来实现将选中项的值赋给文本框。阶段三、通过使用文本框的委托方法controlTextDidChange实现table
view内数据的动态修改。

阶段一,完成数据的显示。阶段二,完成数据拖拽的调整。阶段三,实现撤销功能。

本文共分为两个阶段。(在阶段二中详细演示了“拖拽大法”)

1、新建工程,打开StoryBoard,添加Push Button、Text Filed、Label、Array
Controller、Table View等。

1.新建项目,打开storyboard,将source list拖拽直默认的view controller中。

第一个阶段完成NSCollectionView与数据的绑定,其效果如下:

图片 1image.png

图片 2image.png

图片 3image.png

2、创建一个NSObject的子类User,并为其添加firstName与lastName成员。

2.将tree controller和object拖拽至默认的view controller的顶部。

第二阶段实现,对已有数据进行增加,其效果如下:

//User.h#import <Foundation/Foundation.h>@interface User : NSObject@property NSString *firstName;@property NSString *lastName;-(instancetype) init;@end

//User.m#import "User.h"@implementation User-(instancetype) init{ self = [super init]; if{ self.firstName = @"Gao"; self.lastName = @"Ben"; } return self;}@end

图片 4image.png

图片 5image.png

3、向ViewController.h中添加NSMutableArray类型的成员变量users并在ViewController.m中对其进行初始化。

3.点击选中object,设置其【Custom
Class】为“NSMutableArray”,设置其【Document Label】为playlits。

1.新建项目,拖拽table view至默认的view controller中。

//ViewController.h#import <Cocoa/Cocoa.h>#import "User.h"@interface ViewController : NSViewController@property NSMutableArray<User*> *users;@end

//ViewController.m- viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. self.users = [[NSMutableArray alloc] initWithCapacity:32];}

图片 6image.png

图片 7image.png

4、打开StoryBoard,设置Array Controller的Object Controller中的Class
Name为User,将Array Controller的Content
Array与ViewController的users进行绑定。

4.点击选中Tree
Controller,按住Control键将其拖拽至object图标上,选择content。

2.设置table view的行数为1。

图片 8image.png图片 9image.png

图片 10image.png

图片 11image.png

5、将Table view的Table Content与Array
Controller进行绑定,并将Add按钮与Array Controller的Add方法进行绑定。

5.点击选中Tree Controller,设置其Children为children、Ledf为isLeaf、Class
Name为Playlist。(聪明的你知道我们下一步要做什么了吗?)

3.设置table view的dataSource为view controller。

图片 12image.png图片 13image.png图片 14image.png图片 15image.png

图片 16image.png

图片 17image.png

6、阶段一完成,效果如下。

6.新建一个NSObject的子类Playlist,声明两个属性name和creator,声明并实现isLeaf和初始化方法。

4.在ViewController.h中添加”NSTableViewDataSource”协议,并且定义一个NSMutableArray指针变量books。

图片 18image.png

//Playlist.h#import <Cocoa/Cocoa.h>@interface Playlist : NSObject@property NSString *name;@property NSString *creator;-  isLeaf;-  init;-  initWithCustom:(NSString*)name;@end

#import "Playlist.h"@implementation Playlist- init{ self = [super init]; if{ _name = @"New Player"; _creator = @"N/A"; } return self;}- initWithCustom:(NSString*)name{ self = [super init]; if{ _name = name; _creator = @"N/A"; } return self;}- isLeaf{ return YES;}@end

图片 19image.png

You can leave a response, or trackback from your own site.

Leave a Reply

网站地图xml地图