Раскадровки Swift: контроллер разделенного представления не отображается должным образом в MacOS

Я пытаюсь реализовать контроллер с разделенным представлением, используя раскадровки и Swift на MacOS:

скриншот xcode

Почему-то отображается только правая сторона. Любые идеи ?


person Community    schedule 02.11.2014    source источник


Ответы (2)


На самом деле это проблема размера окна. Поскольку он не определен, он выталкивает левую сторону из поля зрения. Просто поместите курсор слева и перетащите, чтобы отобразить вид слева.

выстрел

Надеюсь, поможет.


ОБНОВЛЕНИЕ:

На самом деле это НЕ проблема размера окна. Похоже, что контроллер разделения экрана по умолчанию выталкивает одну сторону из поля зрения. И наоборот, я смог правильно просмотреть две панели с помощью компонента разделенного представления, вставленного в контроллер представления.

экран

Я буду проверять информацию об этой проблеме в последней версии WWDC:

https://developer.apple.com/videos/wwdc/2014/?id=212

https://developer.apple.com/videos/wwdc/2014/?id=214


ОБНОВЛЕНИЕ 11.03.14:

После минуты 07:00 первого скринкаста я понял, что происходит. Взгляните на скриншот ниже:

  1. Сделайте ширину Split View Controller равной ширине главного окна.
  2. Измените размер элементов разделенного просмотра.
  3. Нажмите на элементы с наиболее правым элементом разделенного представления, добавьте отсутствующие ограничения из всплывающего меню «Закрепить».

solution

Может потребоваться несколько попыток, прежде чем у вас все получится. Я проверил это три раза, и это действительно сработало.

person carlodurso    schedule 03.11.2014
comment
Как мне определить его, чтобы он перестал это делать? - person ; 03.11.2014
comment
Отсутствующие ограничения не кликабельны. У меня такая же проблема - person DanielZanchi; 25.03.2016

введите здесь описание изображения

https://developer.apple.com/library/mac/documentation/Cocoa/Reference/ApplicationKit/ObjC_classic/index.html#//apple_ref/doc/uid/20001093

NSSplitViewDelegate

класс SplitViewController: NSSplitViewController{//,NSSplitViewDelegate

Swift раскадровки: контроллер разделенного представления не отображается должным образом

Это было действительно проблемой и для меня. Теперь я решил эту проблему в своем коде.

1. Создайте расширенный класс NSSplitViewController. 2. Установите класс, созданный на этапе 1, в качестве пользовательского класса в вашем SplitView, который вы создали в StoryBord. 3. вызовите MySplitView.adjustSubviews() внутри viewDidLoad().

import Cocoa

class SplitViewController: NSSplitViewController{//,NSSplitViewDelegate
    @IBOutlet weak var MySplitView: NSSplitView!
        override func viewDidLoad() {
        super.viewDidLoad()
        MySplitView.adjustSubviews();
    }
    override func splitView(splitView: NSSplitView, constrainMinCoordinate proposedMinimumPosition: CGFloat, ofSubviewAt dividerIndex: Int) -> CGFloat {
        return proposedMinimumPosition + 200
    }
}
person Mari Murotani    schedule 19.07.2015