2013-10-15 69 views
1

我有了像安裝一個標準的單柱NSTableView是否有可能使NSTable視圖將「細胞」包裝成新的細胞?

1 
2 
3 
4 
5 
6 
7 
8 
9 

是否有可能使數據的顯示水平,然後包裝也是這樣嗎?

1 2 3 
4 5 6 
7 8 9 

或者我應該不是完全使用NSTableView?我試圖避免使用廣泛的邏輯來做到這一點。

+0

你的意思是喜歡收藏看法呢? – uchuugaka

+0

在將線性數組映射到2D表格時沒有「廣泛的邏輯」:除以列數會給出一行;獲得一個餘數給你的列。反向映射是'index = row * columnCount + column'。 – dasblinkenlight

回答

1

那麼你可以做到這一點,但直接沒有這樣的API使其水平。您必須取三列,然後將第一行數據插入三列。插入3列數據後,您必須開始填充下一行,就像您可以在桌面視圖中執行的邏輯一樣。你也可以做到這一點是採取一個數組添加上面的數字1-9在你的數組然後運行循環裏面,每3個值可變字典開始把你的數據插入你的行一旦插入三開始填充相同到下一行。 下面是小碼,以及你需要做的綁定: -

 1)Drag and drop arraycontroller 
     now go to binding inspector and see the binding in the screen shot attached:- 
     ![enter image description here][1] 


     [1]: http://i.stack.imgur.com/1dcDy.png 

2) Now in your table view select first column and do the binding in attached screen shot 
![enter image description here][2] 
![enter image description here][3] 


3) similarly do for second and third column with name inside model key path for second column give name second and for third column give third. 

4) Once binding has done. 
Write the below code in your method where you required: 

-(void)awakeFromNib 
{ 
    int i,j=1,k=2,l=3; 
    self.yourArray=[NSMutableArray array]; 
    for (i=0; i<3;i++) 
     {   
     NSMutableDictionary *dc=[NSMutableDictionary dictionary]; 
     [dc setObject:[NSNumber numberWithInt:j] forKey:@"first"]; 
     [dc setObject:[NSNumber numberWithInt:k] forKey:@"second"]; 
     [dc setObject:[NSNumber numberWithInt:l] forKey:@"third"]; 
     [self.yourArray addObject:dc]; 
     [self setYourArray:self.yourArray]; 
     j=j+3; 
     k=k+3; 
     l=l+3; 
    } 
} 


    [1]: http://i.stack.imgur.com/6cm6M.png 
    [2]: http://i.stack.imgur.com/6cm6M.png 
    [3]: http://i.stack.imgur.com/51oET.png 
+0

我該如何製作一個for循環呢?我從一組數據開始。 –

+0

你能告訴我嗎? –

+0

我已更新您的解決方案。請遵循:) –