繁体   English   中英

如何在UIStepper上实现KVO

[英]How to implement KVO on UIStepper

我正在创建KVO小型演示。 据我所知, KVO用于在属性值更改时通知。 我想在UIStepper上实现KVO 我想通知用户何时更改UIStepper值。 我对此做了一些代码如下。

ViewController.h

@interface ViewController : UIViewController
{
   IBOutlet UIStepper *stepper;
}

@property NSInteger intToObserve;

@end

ViewController.m

@interface ViewController ()

@end

@implementation ViewController
@synthesize intToObserve;

- (void)viewDidLoad
{
    [super viewDidLoad];
    stepper.minimumValue = 0;
    stepper.maximumValue = 1000;
    [self addObserver:self forKeyPath:@"intToObserve" options:NSKeyValueObservingOptionNew context:nil];
}

- (IBAction)valueChanged:(UIStepper *)sender
{
    double value = [sender value];
    intToObserve = value;
}

-(void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
{
    NSLog(@"Notification Received");
}
@end

问题是,当我按下加号按钮时,步进值已更改,但我的通知方法未收到任何通知,甚至我在此处设置了断点,但控件未到达那里。 表示不调用-(void)observeValueForKeyPath

请提出一些想法,我在做什么错或要工作这是另一种解决方案?

感谢在广告中。

您需要通过setter方法进行更改,否则通知将不会触发。 更改

intToObserve = value;

self.intToObserve = value;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM