我有NSTitlebarAccessoryViewController
一个不确定NSProgressIndicator
的。我希望能够在我的应用程序的不同位置启动和停止它,有时在视图控制器之外。
我对 OS X 开发相当陌生。我听说在 OS X 中,响应者链比在 iOS 中使用得更多。我已经查看了响应者链以及如何通过 执行此操作NSResponder
,但我真的无法理解它。下面是可视化的屏幕截图。
这是我的标题栏 acc 的代码。视图控制器:
class TitleBarAccessoryViewController: NSTitlebarAccessoryViewController, TitleBarActionable {
@IBOutlet var loadingSpinner: NSProgressIndicator!
override func viewDidLoad() {
super.viewDidLoad()
// Do view setup here.
}
func loadingSpinnerShouldBecomeActive(activate: Bool) {
print("Hello")
loadingSpinner.hidden = !activate
if activate {
loadingSpinner.startAnimation(self)
} else {
loadingSpinner.stopAnimation(self)
}
}
}
然后我想通过协议扩展来调用它:
extension EmployeeAPI {
func getAllEmployees(completionHandler: ([FDataSnapshot]) -> Void) {
let employeeRef = ref.childByAppendingPath("employees")
//Somehow start the loading indicator here
employeeRef.observeSingleEventOfType(.Value, withBlock: { snapshot in
//And somehow stop it here
var arr: [FDataSnapshot] = []
for snap in snapshot.children {
if let snap = snap as? FDataSnapshot {
arr.append(snap)
}
}
completionHandler(arr)
})
我还希望从不同的 viewController 启动和停止它,因此它不限于协议扩展。