NSStepper & NSTextField Bindings

2017-04-21  本文已影响0人  su3

Cocoa 开发中更多地运用对象绑定的概念。这是一个 NSStepper 和 NSTextField 绑定的例子。

Model

创建 StepperModel.swift,视图组件的 model key path 将引用 model 中定义的变量名。

class StepperModel: NSObject {
    var stepperValue: Int = 0
}

ObjectController

创建 StepperContrller.swift,两个视图组建将绑定这个 Controller。

Bindings

1. ObjectController 绑定 Object

2. 视图组件绑定 Controller

格式化

通常 NumberFormatter 也可以在 Inspector 中设置,但是整型格式需要自己定义,避免输入非整型数据。

    class stepperNumberFormatter: NumberFormatter {
        override func isPartialStringValid(_ partialString: String, newEditingString newString: AutoreleasingUnsafeMutablePointer<NSString?>?, errorDescription error: AutoreleasingUnsafeMutablePointer<NSString?>?) -> Bool {
            if partialString.isEmpty {
                return true
            }
            return Int(partialString) != nil
        }
    }

viewDidLoad() 中赋给 textField

textField.formatter = stepperNumberFormatter()

GitHub

参考 YOUTUBE

上一篇 下一篇

猜你喜欢

热点阅读