IKImageView、スクロールバー
-
20-09-2019 - |
質問
ようにしているのIKImageViewDemo apple社が提供する(http://developer.apple.com/mac/library/samplecode/IKImageViewDemo/index.html びんを使用することによりスクロールバーです。たっては二つのことをやろうとしてい
1)埋め込みのIKImageViewにScrollView.このた全てのもの影響のように、イメージがなくなりにあるはずでのスクロールバーが一定の場所に、どんなに大きな窓のた(この短縮することで画面のスクロールバーのものscrollviewに設定したサイズ変更のウィンドウ)
2)を追加[_imageView setHasHorizontalScrollers:YES](垂直)はコードのopenImageURL方法です。これがいかにしていたと思います。
私を見落とさないよう明らかな?
また:なぜ
NSLog(@"scrollbar? H %d V %d hide %d",
_imageView.hasHorizontalScroller,
_imageView.hasVerticalScroller,
_imageView.autohidesScrollers);
_imageView.hasHorizontalScroller = YES;
_imageView.hasVerticalScroller = YES;
_imageView.autohidesScrollers = YES;
NSLog(@"scrollbar? H %d V %d hide %d",
_imageView.hasHorizontalScroller,
_imageView.hasVerticalScroller,
_imageView.autohidesScrollers);
い:
scrollbar? H 0 V 0 hide 0
scrollbar? H 0 V 0 hide 0
?
またまた:
同様なぜ:
BOOL b = _imageView.autohidesScrollers = YES;
NSLog (@"b %d scrollers %d", b, _imageView.autohidesScrollers);
印刷億1scrollers0?
解決
これが引くさんのIKImageViewDemoのイメージを拡大に適応 windowDidResize:
方法[_imageView zoomImageToFit: self]
).
埋め込みのIKImageViewにNSScrollViewが正しいことだと思います。を取得するためのスクロールバーのオーバーラッピングウィンドウでいサイズの変更は、すべての調整が必要である泉、支柱(==autoresizingマスク)のインターフェイスをビルダを構築します。
補足: しています気がついているように、バグにMac OS X10.6の原因となるこないます。できるなどの問題は、サブクラスのNSScrollViewとして
@interface IKImageClipView : NSClipView
- (NSRect)docRect;
@end
@implementation ScrollViewWorkaround
- (void)reflectScrolledClipView:(NSClipView *)cView;
{
NSView *_imageView = [self documentView];
[super reflectScrolledClipView:cView];
if ([_imageView isKindOfClass:[IKImageView class]] &&
[[self contentView] isKindOfClass:[IKImageClipView class]] &&
[[self contentView] respondsToSelector:@selector(docRect)]) {
NSSize docSize = [(IKImageClipView *)[self contentView] docRect].size;
NSSize scrollViewSize = [self contentSize];
// NSLog(@"doc %@ scrollView %@", NSStringFromSize(docSize), NSStringFromSize(scrollViewSize));
if (docSize.height > scrollViewSize.height || docSize.width > scrollViewSize.width)
((IKImageView *)_imageView).autohidesScrollers = NO;
else
((IKImageView *)_imageView).autohidesScrollers = YES;
}
}
@end
してみてください:
http://dl.dropbox.com/u/1583683/IKImageViewDemo.zip
このバージョンのIKImageViewDemoスクロールバー、上記の回避策.