Coder Social home page Coder Social logo

kstabview's Introduction

#KSTabView

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

kstabview's People

Contributors

kaunteya avatar dautermann avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.