2015-04-04 5 views
2

В NSView у меня есть вид контейнера и два NSButton (см. Рисунок). NSButton изменяет содержимое в представлении контейнера. Для того, чтобы показать вид и скрыть другую, я делаю это:Как отключить или скрыть представление в XCode?

@IBAction func changeView(sender: NSButton) 
{ 
    switch sender.id 
    { 
     case "Button 1" { view1.hidden = true; view2.hidden = false; } 
     case "Button 2" { view1.hidden = false; view2.hidden = true; } 
    } 
} 

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

Как я могу правильно переключиться с одного взгляда на другой?

image

ответ

2

Скрытие должно быть прекрасным. Возможно, вам захочется переключить порядок, чтобы вы всегда отображали скрытый вид, прежде чем отключить другое представление.

Вы также можете удалить представление из иерархии представлений (removeFromSuperview()), чтобы эффективно скрыть его. Убедитесь, что что-то в вашем коде поддерживает сильную ссылку на представление. Контроллер представлений делает это, так что это предположительно достаточно хорошо (при условии, что у вас также есть сильная ссылка на контроллер вида).

И, да, помещая представления в NSTabView, и с этим переключателем они также работают (в основном, используя одну из вышеупомянутых техник).

2

Я не уверен, если это быстрее, но это, безусловно, удобнее использовать tabless NSTabView. Таким образом, вы можете настроить представления в наконечнике без путаницы взглядов, которые, похоже, перекрываются.

Смежные вопросы