我試圖創建一個類似於Xcode的屬性面板一個標籤面板,但標準的標籤面板似乎有不同的外觀和沒有感覺標籤面板方式來改變它。應該使用哪些控件來創建類似的標籤面板?
編輯: 我沒有使用NSTabViewController - 只是有TabView!
我試圖創建一個類似於Xcode的屬性面板一個標籤面板,但標準的標籤面板似乎有不同的外觀和沒有感覺標籤面板方式來改變它。應該使用哪些控件來創建類似的標籤面板?
編輯: 我沒有使用NSTabViewController - 只是有TabView!
我剛創建了一個故事板和提供的佈局的新項目,添加到視圖控制器視圖頂部的自定義視圖。爲自定義視圖添加按鈕,style = square,type = toggle,並使用提供的類型模板圖標。爲按鈕0-4分配標籤,並將它們放到水平堆棧視圖中。然後添加一條水平線和一個容器視圖。然後,我將一個Tab View Controller添加到故事板並將其嵌入到容器視圖中。所有按鈕都連接到相同的動作。
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
}
}
行,所以這幾乎是我想要的,但我想的標籤按鈕,出現上面的屬性面板,而不是在應用程序工具欄。 –
@DuncanGroenewald不幸的是,如果你需要任何類型的自定義行爲,你需要使用不同的方法。帶有tabless風格的NSTabView,並將選定的索引綁定到控制器中的變量。然後創建一組圖像按鈕或其他類型的按鈕,並將它們放置在堆棧視圖中,並將堆棧視圖定位到桌面NSTabView的頂部。與我們在iOS中執行操作的方式相同。然後有一些選擇邏輯e.t.c. –
好吧,看起來很奇怪,他們全都使用Xcode樣式選項卡,但沒有將其作爲標準選項 –