2011-09-26 74 views
0

如何實現以編程方式創建的調整NSTableView大小的功能?不應該使用接口生成器。它應該像點擊並拖動來改變NSTableView的大小。可能嗎?如果是的話,請幫助。 。 。 。以編程方式調整NSTableView的大小

+0

我不確定你的問題是什麼。你想讓你的應用程序的用戶能夠調整tableview的大小嗎? – sosborn

+0

@sosburn:是的。用戶應該能夠調整它的大小。 – Soorya

+0

嗨Soorya ..你想如何調整你的桌子..通過拖動窗口的角落,它包含..或拖動表本身的邊界? – Devarshi

回答

0

恐怕你需要編寫一些代碼才能使其工作。這是我的方式。

製作一個特殊的Resize View,它將跟蹤鼠標事件並調用委託方法來提供跟蹤位置如何變化。

- (void)mouseDown:(NSEvent *)theEvent 
{ 
    _startPoint = [theEvent locationInWindow]; 
    [_delegate resizingDidStart]; 
} 

- (void)mouseDragged:(NSEvent *)theEvent 
{ 
    NSPoint hitPoint = [theEvent locationInWindow]; 
    [_delegate resizeWithDeltaX:(hitPoint.x - _startPoint.x) deltaY:(hitPoint.y - _startPoint.y)]; 
} 

將此視圖置於基本視圖的右下角。設置自動調整掩碼,以便此視圖始終停留在右下角。

將表視圖及其滾動視圖放到基本視圖上。設置滾動視圖的自動調整掩碼,使其大小和寬度都很大。

在調整視圖大小的委託中更改鼠標位置並設置基本視圖的框架。

- (void)resizingDidStart 
{ 
    _initialRect = [_baseView frame]; 
} 

- (void)resizeWithDeltaX:(CGFloat)deltaX deltaY:(CGFloat)deltaY 
{ 
    [_baseView setFrame:NSMakeRect(_initialRect.origin.x, _initialRect.origin.y + deltaY, _initialRect.size.width + deltaX, _initialRect.size.height - deltaY)]; 
} 

當然,滾動視圖應該在調整大小視圖下。你可以在調整大小視圖中畫一些句柄等。

+0

非常感謝。我會試試這個。 – Soorya

相關問題