Fix that reset alternateImage cancel the image load operation for NSButton+WebCache
This commit is contained in:
parent
8590388a6e
commit
634e4f4522
|
@ -232,6 +232,18 @@
|
||||||
progress:(nullable SDWebImageDownloaderProgressBlock)progressBlock
|
progress:(nullable SDWebImageDownloaderProgressBlock)progressBlock
|
||||||
completed:(nullable SDExternalCompletionBlock)completedBlock;
|
completed:(nullable SDExternalCompletionBlock)completedBlock;
|
||||||
|
|
||||||
|
#pragma mark - Cancel
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Cancel the current image download
|
||||||
|
*/
|
||||||
|
- (void)sd_cancelCurrentImageLoad;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Cancel the current alternateImage download
|
||||||
|
*/
|
||||||
|
- (void)sd_cancelCurrentAlternateImageLoad;
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -10,6 +10,7 @@
|
||||||
|
|
||||||
#if SD_MAC
|
#if SD_MAC
|
||||||
|
|
||||||
|
#import "UIView+WebCacheOperation.h"
|
||||||
#import "UIView+WebCache.h"
|
#import "UIView+WebCache.h"
|
||||||
|
|
||||||
@implementation NSButton (WebCache)
|
@implementation NSButton (WebCache)
|
||||||
|
@ -45,11 +46,14 @@
|
||||||
options:(SDWebImageOptions)options
|
options:(SDWebImageOptions)options
|
||||||
progress:(nullable SDWebImageDownloaderProgressBlock)progressBlock
|
progress:(nullable SDWebImageDownloaderProgressBlock)progressBlock
|
||||||
completed:(nullable SDExternalCompletionBlock)completedBlock {
|
completed:(nullable SDExternalCompletionBlock)completedBlock {
|
||||||
|
__weak typeof(self)weakSelf = self;
|
||||||
[self sd_internalSetImageWithURL:url
|
[self sd_internalSetImageWithURL:url
|
||||||
placeholderImage:placeholder
|
placeholderImage:placeholder
|
||||||
options:options
|
options:options
|
||||||
operationKey:nil
|
operationKey:@"NSButtonImageOperation"
|
||||||
setImageBlock:nil
|
setImageBlock:^(NSImage * _Nullable image, NSData * _Nullable imageData) {
|
||||||
|
weakSelf.image = image;
|
||||||
|
}
|
||||||
progress:progressBlock
|
progress:progressBlock
|
||||||
completed:completedBlock];
|
completed:completedBlock];
|
||||||
}
|
}
|
||||||
|
@ -89,7 +93,7 @@
|
||||||
[self sd_internalSetImageWithURL:url
|
[self sd_internalSetImageWithURL:url
|
||||||
placeholderImage:placeholder
|
placeholderImage:placeholder
|
||||||
options:options
|
options:options
|
||||||
operationKey:nil
|
operationKey:@"NSButtonAlternateImageOperation"
|
||||||
setImageBlock:^(NSImage * _Nullable image, NSData * _Nullable imageData) {
|
setImageBlock:^(NSImage * _Nullable image, NSData * _Nullable imageData) {
|
||||||
weakSelf.alternateImage = image;
|
weakSelf.alternateImage = image;
|
||||||
}
|
}
|
||||||
|
@ -97,6 +101,16 @@
|
||||||
completed:completedBlock];
|
completed:completedBlock];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#pragma mark - Cancel
|
||||||
|
|
||||||
|
- (void)sd_cancelCurrentImageLoad {
|
||||||
|
[self sd_cancelImageLoadOperationWithKey:@"NSButtonImageOperation"];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)sd_cancelCurrentAlternateImageLoad {
|
||||||
|
[self sd_cancelImageLoadOperationWithKey:@"NSButtonAlternateImageOperation"];
|
||||||
|
}
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -128,7 +128,7 @@
|
||||||
options:(SDWebImageOptions)options
|
options:(SDWebImageOptions)options
|
||||||
completed:(nullable SDExternalCompletionBlock)completedBlock;
|
completed:(nullable SDExternalCompletionBlock)completedBlock;
|
||||||
|
|
||||||
#pragma mark - Background image
|
#pragma mark - Background Image
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the current background image URL.
|
* Get the current background image URL.
|
||||||
|
|
|
@ -87,7 +87,7 @@ static inline NSString * backgroundImageURLKeyForState(UIControlState state) {
|
||||||
completed:completedBlock];
|
completed:completedBlock];
|
||||||
}
|
}
|
||||||
|
|
||||||
#pragma mark - Background image
|
#pragma mark - Background Image
|
||||||
|
|
||||||
- (nullable NSURL *)sd_currentBackgroundImageURL {
|
- (nullable NSURL *)sd_currentBackgroundImageURL {
|
||||||
NSURL *url = self.imageURLStorage[backgroundImageURLKeyForState(self.state)];
|
NSURL *url = self.imageURLStorage[backgroundImageURLKeyForState(self.state)];
|
||||||
|
@ -146,6 +146,8 @@ static inline NSString * backgroundImageURLKeyForState(UIControlState state) {
|
||||||
completed:completedBlock];
|
completed:completedBlock];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#pragma mark - Cancel
|
||||||
|
|
||||||
- (void)sd_cancelImageLoadForState:(UIControlState)state {
|
- (void)sd_cancelImageLoadForState:(UIControlState)state {
|
||||||
[self sd_cancelImageLoadOperationWithKey:[NSString stringWithFormat:@"UIButtonImageOperation%@", @(state)]];
|
[self sd_cancelImageLoadOperationWithKey:[NSString stringWithFormat:@"UIButtonImageOperation%@", @(state)]];
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue