質問

ようにしているの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スクロールバー、上記の回避策.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top