KSTabView is simple and lightweight TabView for Mac OSX implemented in Swift

Features

  • Complete autolayout support
  • All configurations are IBInspecatable
  • Simple and lightweight

Requirements

  • Mac OS X 10.10 +
  • Xcode 6.3

Usage

Setup

Drag KSTabView.swift to you project.

In IB, drag a Custom View from Object Library. Set Custom Class to KSTabView

Drag IBOutlet to ViewController

@IBOutlet weak var tabView: KSTabView!

Adding buttons

Buttons can be pushed either left or right Aligned

tabView.pushButtonLeft("Reload", identifier: "reload")       // Adds Button with title "Reload" and identifier "reload" aligned Left
tabView.pushButtonRight("Jump", identifier: "jump")

Identifier is must, as the action event will receive this identifier String as an argument

Button Actions

Handling the button clicks is as easy as creating an IBAction in view controller

@IBAction func actionOccured(sender: NSString?) {
    println("\(sender) pressed")         // Prints the identifier of button that is clicked
}

Removing buttons

Buttons can be removed, so that new ones can be added

tabView.removeLeftButtons()            //Removes all the Left aligned buttons
tabView.removeRightButtons()           //Removes all the Right aligned buttons

Modes of operation

KSTabview has 3 modes of operation viz None, One, Any

tabView.selectionType = .None       // No selection happens.(Only action triggers)
tabView.selectionType = .One        // Only the latest selection stays
tabView.selectionType = .Any        // Multiple buttons can be selected

Chaining

Methods that are not intended to return anything return self, to facilitate method chaining

tabView.removeRightButtons()
    .pushButtonRight("Help", identifier: "help")
    .pushButtonRight("Modify", identifier: "modify")
    .pushButtonRight("Delete", identifier: "delete")
    .pushButtonRight("New", identifier: "new").selectedButtons = ["modify"]

Todo

  • Allow add buttons from Interface Builder
  • Documentation
  • Support for buttons with Image