好吧,我承认我从来没有这么好,通过编程操作NSView
及其调整大小。所以,我在这里:将NSTextView子视图添加到NSTabViewItem
- 我们已经有了一个卡视图
- 我们添加一个新
NSTabViewItem
- 每个
NSTabViewItem
将包含在它一个NSTextView
,延绵并占据所有空间NSTabViewItem
。
这里是我的代码:
NSTabViewItem *newItem = [[(NSTabViewItem*)[NSTabViewItem alloc] initWithIdentifier:newDocument] autorelease];
NSTextView* tv = [[NSTextView alloc] initWithFrame:NSZeroRect];
[tv makeStretchable];
[[newItem view] setAutoresizesSubviews:YES];
[[newItem view] addSubview:tv];
[newItem setLabel:@"Untitled"];
[tabView addTabViewItem:newItem];
[tabView selectTabViewItem:newItem];
我NSView
类别(makeStretchable
):
#define FIX_LEFT NSViewMinXMargin
#define FIX_RIGHT NSViewMaxXMargin
#define FIX_TOP NSViewMinYMargin
#define FIX_BOTTOM NSViewMaxYMargin
#define FIX_WIDTH NSViewWidthSizable
#define FIX_HEIGHT NSViewHeightSizable
- (void)makeStretchable
{
[self setAutoresizingMask:FIX_LEFT|FIX_TOP|FIX_BOTTOM|
FIX_RIGHT|FIX_WIDTH|FIX_HEIGHT];
}
问题:
- 的
NSTextView
是最小的(如只有一条线路),并坐在每个NSTabViewItem
正中央我敢肯定它是与我的面具调整(或者也许我的方式是否添加视图?),但我仍然无法弄清楚。有任何想法吗?
有趣的是,我通过完全相反的方式使它工作:通过删除所有** **但是:'FIX_WIDTH'和' FIX_HEIGHT' – 2013-02-16 11:20:39
我可能误解了FIX_ *的含义;我发现NS *的名字不那么令人困惑(苹果是否会从Cocoa中解除困惑?)。但根据您的#define,FIX_WIDTH和FIX_HEIGHT是“倒置”的。注意:如果您的视图没有设置标志,它将水平和垂直居中,但不会伸展。 – 2013-02-16 11:55:34
嗯,这是因为......可可混乱,我试图用宏和定义“驯服”自动调整大小的蒙版。虽然在这种特殊情况下,它被证明是错误的选择...(通常情况下,它不是*)lol – 2013-02-16 11:56:57