2016-11-22 2 views
0

enter image description hereWie erstelle ich einen Tabbed-Panel ähnlich die Xcode Eigenschaften Panel

Ich versuche, einen Tabbed-Panel ähnlich das Xcode Fenster Eigenschaften zu schaffen, sondern das Standard-Registerfeld erscheint ein anderes Aussehen zu haben und sich mit nicht Möglichkeit, es zu ändern. Welche Steuerelemente sollten verwendet werden, um ein ähnlich aussehendes Registerfeld zu erstellen?

EDIT: Ich war nicht mit einem NSTabViewController - hatte nur die TabView !!

Antwort

0

Wenn Sie Storyboards verwenden, ziehen Sie einfach den Registerkarten-Controller auf die Oberfläche und verbinden Sie sich mit dem Fenster. zu IB Einstellungen Tab-View-Controller Dann gehen Sie und Stil, wie unten abgebildet Symbolleiste ändern:

enter image description here

:

enter image description here

Dann Tabs und Bild, wie unten dargestellt zu den einzelnen Registerkarten hinzufügen hinzufügen Führen Sie Ihre App und genießen Sie das Aussehen als XCode Einstellungen anzeigen:

enter image description here

+0

OK so ist dies fast, was ich will, es sei denn ich die Registerkarte Tasten über dem Fenster Eigenschaften angezeigt werden sollen und nicht in der Apps-Symbolleiste. –

+0

@DuncanGrenewald Leider müssen Sie, wenn Sie ein benutzerdefiniertes Verhalten benötigen, einen anderen Ansatz verwenden. NSTabView mit tabellarischem Stil und bind ausgewählten Index an eine Variable im Controller. Erstellen Sie dann eine Reihe von Bildschaltflächen oder andere Arten von Schaltflächen, und platzieren Sie sie in der Stapelansicht und der Ankerstapelansicht an der Tabellenoberkante NSTabView. Genau wie wir in iOS tun. Dann haben Sie eine Auswahllogik e.t.c. –

+0

Mmm ok, scheint seltsam, sie verwenden die Xcode-Stil Tabs überall, aber nicht als Standardoption –

1

Ich habe gerade ein neues Projekt mit Storyboard erstellt und mit dem bereitgestellten Layout hinzugefügt, um den Ansichts-Controllern eine benutzerdefinierte Ansicht oben anzuzeigen. Für die benutzerdefinierte Ansicht wurden Schaltflächen hinzugefügt, style = square, type = toggle und die bereitgestellten Symbole der Typvorlage verwendet. Den Schaltflächen 0-4 wurde ein Tag zugewiesen und sie wurden in eine horizontale Stapelansicht verschoben. Dann wurde eine horizontale Linie und eine Containeransicht hinzugefügt. Dann füge ich einen Tab-View-Controller zum Storyboard hinzu und bette ihn in die Containeransicht ein. Alle Tasten sind mit derselben Aktion verbunden.

import Cocoa 

class ViewController: NSViewController { 

    @IBOutlet var myStackView: NSStackView! 

    var oldSelection: Int = 0 
    var newSelection: Int = 0 

    var buttons: [NSButton]? 
    var tabViewDelegate: NSTabViewController? 

    @IBAction func selectedButton(_ sender: NSButton) { 
     newSelection = sender.tag 
     tabViewDelegate?.selectedTabViewItemIndex = newSelection 

     buttons![oldSelection].state = .off 
     sender.state = .on 

     oldSelection = newSelection 
    } 

    override func viewDidLoad() { 
     super.viewDidLoad() 
     // Do any additional setup after loading the view. 
     buttons = (myStackView.arrangedSubviews as! [NSButton]) 
    } 

    override var representedObject: Any? { 
     didSet { 
     // Update the view, if already loaded. 
     } 
    } 

    override func prepare(for segue: NSStoryboardSegue, sender: Any?) { 
     // Once on load 
     tabViewDelegate = segue.destinationController as? NSTabViewController 
    } 

} 
Verwandte Themen