zoukankan      html  css  js  c++  java
  • Object-C NSTableView的view-base形式的简单使用

    1. 环境

    Mac OSX 10.10.5 + Xcode 7.2.1

    2. 创建工程

    3. 控件设置

    a. 拖动一个TableView控件和一个Button控件到View Controller.

    b. 设置TableView为view-base形式,并设置显示为两列,网格设为实线。

    c. 设置TableView的一列的Title和Identifier为Name,一列Title和Identifier为Phone。

     Identifier是唯一的。

    4. 创建一个类TableViewData

    用于操作TableView显示的数据,TableView的DataSource和AppDelegate绑定到TableViewData类。

    5. TableViewData相关的设置

    a. 增加一个Object实体,Class设置为TableViewData方便绑定TableView。

    b. 绑定TableView的DataSource和AppDelegate到Object。

    c. TableView和Button添加到Class TableViewData。

    TableView:

    Button:

    d. 设置完成后,object的属性。

    6. 实现NSTableView方法。

    1.  - (NSInteger)numberOfRowsInTableView:(NSTableView *)aTableView

    2. - (NSView *)tableView:(NSTableView *)tableView

       viewForTableColumn:(NSTableColumn *)tableColumn

                      row:(NSInteger)row;

     

     TableViewData.h :

    #import <Foundation/Foundation.h>
    #import <Cocoa/Cocoa.h>
    
    @interface TableViewData : NSObject
    
    @property (weak) IBOutlet NSTableView *tableView;
    
    @property NSMutableArray *rowData;
    
    
    @end

    TableViewData.m :

    #import "TableViewData.h"
    
    @implementation TableViewData
    
    - (id)init {
        self = [super init];
        if (self) {
            // Initialize self.
            self.rowData = [[NSMutableArray alloc] init];
        }
        return self;
    }
    
    
    - (NSInteger)numberOfRowsInTableView:(NSTableView *)aTableView{
        return self.rowData.count;
    }
    
    - (NSView *)tableView:(NSTableView *)tableView
       viewForTableColumn:(NSTableColumn *)tableColumn
                      row:(NSInteger)row{
        NSString *identifier = [tableColumn identifier];
        NSDictionary *dict = [self.rowData objectAtIndex:row];
        NSString *value = [dict objectForKey:identifier];
        if (value) {
            NSTableCellView *column = [tableView makeViewWithIdentifier:identifier owner:self];
            column.textField.stringValue = value;
            return column;
        }
        return nil;
    }
    
    
    - (IBAction)clickButtonToUpdateTableView:(id)sender {
        NSDictionary *dict = [[NSDictionary alloc] initWithObjectsAndKeys:@"John",@"Name",@"123456",@"Phone", nil];
        [self.rowData addObject:dict];
        [self.tableView reloadData];
    }
    
    
    
    @end

    代码:github

  • 相关阅读:
    C. Shaass and Lights 解析(思維、組合)
    D. Binary String To Subsequences(队列)(贪心)
    CodeForces 1384B2. Koa and the Beach (Hard Version)(贪心)
    CodeForces 1384B1. Koa and the Beach (Easy Version)(搜索)
    CodeForces 1384C. String Transformation 1(贪心)(并查集)
    CodeForces 1384A. Common Prefixes
    POJ-2516 Minimum Cost(最小费用最大流)
    POJ3261-Milk Patterns(后缀数组)
    HDU-1300 Pearls(斜率DP)
    HDU-4528 小明系列故事-捉迷藏(BFS)
  • 原文地址:https://www.cnblogs.com/v-BigdoG-v/p/7503700.html
Copyright © 2011-2022 走看看