spiegel-keyman/ios/engine/KMEI/KeymanEngine/Classes/LanguagePicker/KeyboardPickerBarButtonItem.swift
2017-11-30 09:00:13 +07:00

59 lines
1.6 KiB
Swift

//
// KeyboardPickerBarButtonItem.swift
// KeymanEngine
//
// Created by Gabriel Wong on 2017-09-12.
// Copyright © 2017 SIL International. All rights reserved.
//
import UIKit
public class KeyboardPickerBarButtonItem: UIBarButtonItem {
weak var presentingVC: UIViewController?
// Returns a UIBarButtonItem that will display the keyboard picker when tapped
// - since the keyboard picker is modal, a UIViewController must be supplied to display it
// - the button has default images for normal and landscape orientations
// - these can be overridden with other images or a title
public init(presentingVC: UIViewController) {
super.init()
style = .plain
action = #selector(self.showKeyboardPicker)
target = self
self.presentingVC = presentingVC
image = UIImage(named: "keyboard_icon", in: Resources.bundle, compatibleWith: nil)
if UIDevice.current.userInterfaceIdiom == .phone {
landscapeImagePhone = UIImage(named: "keyboard_icon_landscape",
in: Resources.bundle,
compatibleWith: nil)
}
}
public required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
deinit {
presentingVC = nil
}
@objc func showKeyboardPicker() {
if let presentingVC = presentingVC {
Manager.shared.showKeyboardPicker(in: presentingVC, shouldAddKeyboard: false)
}
}
public override var title: String? {
get {
return super.title
}
set(title) {
image = nil
landscapeImagePhone = nil
super.title = title
}
}
}