Экземпляр NSTableView
работает по-разному с экземпляром UITableView
. В основном в прокручиваемых табличных представлениях OS X есть экземпляр NSScrollView
, который содержит экземпляр NSTableView
в качестве вида документа.
- NSScrollView и NSClipView
Эти два класса не являются частью таблицы зрения, и они не требуются, но практически все виды таблиц отображаются с помощью классов, которые составляют вид прокрутки механизм.
Apple Doc
Эта точка зрения документ подрезан целью клипа («Документ зоны») в представлении прокрутки, которая является подтаблица самой точки зрения прокрутки.
Here У вас есть объяснение иерархии прокрутки.
Таким образом, представление таблицы представляет собой прокручиваемое представление, размер которого автоматически принимается из его содержимого (количество строк) - и все, что вам нужно, и все, что вам нужно.
Поэтому есть два пути, чтобы получить ваши цели:
«РАБОТАТЬ» вид таблицы из ее иерархии: Используйте один вид таблицы без его родительских взглядов. Это не, что вы получаете в IB, когда вы кладете табличный вид в окно. Вы должны сделать это вручную или создать представление таблицы в своем коде.
Измените размер родительского прокрутки на вид таблицы с автозапуском.
Я предпочитаю первый подход, потому что я не вижу никаких причин, чтобы иметь вид прокрутки с целью зажима вокруг табличном, если нет ничего, чтобы прокрутить и клип. Однако второй подход тоже должен работать.
Если у вас есть вопросы, просто добавьте их как комментарий.
Вот пример:
Я сделал видео этого для лучшего объяснения
http://sendvid.com/0lu0tgda?secret=d7b751f9-a3e9-4cd1-9865-20884b0bd6c8
Я поставил «Tableview» (это означает, что вы получите от IB, так что свиток с прокруткой, содержащий стол внутри), в окно и расположенную слева. Я сделал некоторые привязки, чтобы легко вставить и удалить. Просто обычные вещи.
Тогда у меня есть метод, заменив вид прокрутки с его точки зрения таблицы:
- (IBAction)replaceView:(id)sender
{
// Exchange the view
NSView *contentView = self.scrollView.superview;
NSTableView *tableView = self.tableView;
[contentView addSubview:self.tableView]; // Isolate the table view and make it the new subview
NSRect frame;
frame.origin = self.scrollView.frame.origin; // Take the location from the scroll view
frame.size = tableView.frame.size; // Take the table views size
tableView.frame = frame;
[self.scrollView removeFromSuperview]; // Remove the meaningless scroll view
// Size the window to the table view
NSWindow *window = contentView.window;
NSRect contentFrame = contentView.frame;
contentFrame.size.height = frame.size.height;
NSRect windowFrame = window.frame;
windowFrame.size.height = [window frameRectForContentRect:contentFrame].size.height;
[window setFrame:windowFrame display:YES];
// Set constraints to make the window resizing, when table view resizes
[contentView addConstraints:
[NSLayoutConstraint constraintsWithVisualFormat:@"V:|[tableView]|" options:0 metrics:nil views:NSDictionaryOfVariableBindings(tableView)]];
}
Да, вы можете украсить, что во многих направлениях. Тем не менее, это просто демонстрация того, что вы должны делать и какие инструменты использовать.
Я не понимаю вопроса. – Droppy
@Droppy в представлении таблицы iOS отображает пустые строки с разделительными строками, если в представлении таблицы недостаточно содержимого. Обычный трюк, чтобы предотвратить это, - это настроить просмотр нижнего колонтитула. – Andy
использование [сам.tableView размерToFit]; in viewDidAppear –