Merge pull request #22495 from cpoerschke:4.x-issue-22483

add explicit onChange callback in cocoa cvSetTrackbarPos
This commit is contained in:
Alexander Smorkalov 2022-09-14 20:40:24 +03:00 committed by GitHub
commit 8af4fe9ed3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -451,6 +451,9 @@ CV_IMPL void cvSetTrackbarPos(const char* trackbar_name, const char* window_name
slider = [[window sliders] valueForKey:[NSString stringWithFormat:@"%s", trackbar_name]];
if(slider) {
[[slider slider] setIntValue:pos];
if([slider respondsToSelector:@selector(handleSlider)]) {
[slider performSelector:@selector(handleSlider)];
}
}
}
[localpool5 drain];
@ -1187,7 +1190,7 @@ static NSSize constrainAspectRatio(NSSize base, NSSize constraint) {
[slider setMaxValue:100];
[slider setContinuous:YES];
[slider setTarget:self];
[slider setAction:@selector(sliderChanged:)];
[slider setAction:@selector(handleSliderNotification:)];
[self addSubview:slider];
[self setAutoresizingMask:NSViewWidthSizable];
@ -1197,8 +1200,12 @@ static NSSize constrainAspectRatio(NSSize base, NSSize constraint) {
return self;
}
- (void)sliderChanged:(NSNotification *)notification {
- (void)handleSliderNotification:(NSNotification *)notification {
(void)notification;
[self handleSlider];
}
- (void)handleSlider {
int pos = [slider intValue];
NSString *temp = [self initialName];
NSString *text = [NSString stringWithFormat:@"%@ %d", temp, pos];