ОК, я признаю, что я никогда не был так хорош с программным управлением NSView
и его изменением размера. Итак, я здесь:Добавление поднабора NSTextView в NSTabViewItem
- У нас есть Tab View
- Мы добавляем новый
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' –
Возможно, я неправильно понял значение FIX_ *; Я нахожу имена NS * менее запутанными (будет ли Apple удалять путаницу с Cocoa?).-Но в соответствии с вашим #define, FIX_WIDTH и FIX_HEIGHT перевернуты. Примечание. Если в вашем представлении нет установленных флагов, он будет располагаться горизонтально и вертикально, но он не будет растягиваться. – 2013-02-16 11:55:34
Ну, из-за этого ... Путаница какао, что я пробовал «приручить» автомасштабирующие маски с помощью макросов и определений. Хотя в этом конкретном случае это оказался неправильный выбор ... (чаще, это не *) lol –