zoukankan      html  css  js  c++  java
  • oc之mac中- NSStepper

    2017年09月17日

    https://blog.csdn.net/lovechris00/article/details/78007786

    简介
    创建和使用
    尺寸
    常见的递增输入,其实是一个 NSTextField 和 NSStepper 组合使用:

    NSStepper 

    简介

    stepper 是一个很简单的控件,以至于定义只有这么多:

    创建和使用

    - (void)addStepper{

    NSStepper *stepper = [[NSStepper alloc] initWithFrame:NSMakeRect(100, 100, 100, 100)];

    [self.window.contentView addSubview:stepper];

    stepper.wantsLayer = YES;
    stepper.layer.backgroundColor = [NSColor cyanColor].CGColor;

    stepper.minValue = 5;
    stepper.maxValue = 10;

    stepper.increment = 0.2; //步增值

    stepper.valueWraps = NO; //循环,YES - 超过最小值,回到最大值;超过最大值,来到最小值。

    stepper.continuous = NO; //默认为YES-用户交互时会立即放松ValueChanged事件,NO 则表示只有等用户交互结束时才放松ValueChanged事件
    stepper.autorepeat = YES; //默认为 YES-按住加号或减号不松手,数字会持续变化.continuous = NO 时才有意义。

    [stepper setAction:@selector(stepperAction:)];

    }

    - (void)stepperAction:(id)sender
    {
    int theValue = [sender intValue];
    float fValue = [sender floatValue];

    NSLog(@"value : %d , %f",theValue,fValue);

    [self.pageSizeTextField setIntValue:theValue];

    }

    尺寸

    NSStepper 尺寸

    如你所见,无论给他设置frame多大,都只显示这么大。
    需要大尺寸的 Stepper 的童鞋,可以用两个 button 来自定义。


    ---------------------

    原文:https://blog.csdn.net/lovechris00/article/details/78007786

    NSStepper & NSTextField Bindings

    2017.04.21 18:01* 字数 252 阅读 156评论 0喜欢 0

    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

    • MainStoryboard 中拖入 Object 和 ObjectController 两个对象。
    • Identity Inspector 中设置它们的父类分别为 StepperModel 和 StepperController
    • 选择 ObjectController,Bindings Inspector 中,Controller Content > Bind to Stepper Model, Model Key Path 默认为 self

    2. 视图组件绑定 Controller

    • MainStoryboard 中拖入 Stepper 和 TextField 组件。
    • Bindings Inspector 中,Stepper > Value > Bind to > Stepper Controller, Model Key Path 设为 stepperValue,与 model 中定义的变量名一致
    • TextField 做同样绑定,这样两个组件通过 ObjectController 绑定到同一个值上

    格式化

    通常 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

  • 相关阅读:
    30秒懂SQL中的join(2幅图+30秒)
    MySQL字符串连接函数
    php 月初,月末时间大统计
    php判断中文,英文, 数字
    配置linux----------------ip
    配置samba
    Python的MySQLdb模块安装
    python 之 PIP 安装
    linux之svn
    vue之computed(计算属性)
  • 原文地址:https://www.cnblogs.com/sundaymac/p/10338438.html
Copyright © 2011-2022 走看看