我在以下位置阅读Apple的示例代码:

http://developer.apple.com/library/mac/#samplecode/CocoaSlides/Introduction/Intro.html

它可以在NSView上工作

#import <Cocoa/Cocoa.h>

@class Asset;
@class AssetCollection;

// An AssetCollectionView displays the contents of an AssetCollection

@interface AssetCollectionView :NSView
{
    // Model
    AssetCollection *assetCollection;

    // Controller Glue
    NSMutableArray *nodes;

    // Appearance Attributes
    NSGradient *backgroundGradient;

    // UI State
    BOOL autoCyclesLayout;
    NSTimeInterval layoutCycleInterval;
    NSTimer *layoutTimer;
    int subviewsLayoutType;
    NSArray *sortDescriptors;
    BOOL slidesHaveShadows;
    BOOL usesQuartzCompositionBackground;
}

- (AssetCollection *)assetCollection;
- (void)setAssetCollection:(AssetCollection *)newAssetCollection;

- (BOOL)autoCyclesLayout;
- (void)setAutoCyclesLayout:(BOOL)flag;

- (NSTimeInterval)layoutCycleInterval;
- (void)setLayoutCycleInterval:(NSTimeInterval)newLayoutCycleInterval;

- (int)subviewsLayoutType;
- (void)setSubviewsLayoutType:(int)layoutType;

- (NSArray *)sortDescriptors;
- (void)setSortDescriptors:(NSArray *)newSortDescriptors;

- (BOOL)slidesHaveShadows;
- (void)setSlidesHaveShadows:(BOOL)flag;

- (BOOL)usesQuartzCompositionBackground;
- (void)setUsesQuartzCompositionBackground:(BOOL)flag;

- (void)reloadData;
@end


但是我更喜欢将NSView更改为NSScrollView,以便可以在窗口外部看到缩略图。

但是如果我更改代码

@interface AssetCollectionView :NSView




   @interface AssetCollectionView :NSScrollView


AssetCollectionView将不显示任何内容。

欢迎任何评论

最佳答案

NSScrollView本身不执行任何操作。它只是另一个NSView的包装。只需将您的AssetCollectionView放入NSScrollView中即可实现所需的滚动。

为此,请使用:

[[scrollView contentView]addSubview: myView];


这会将您的视图添加到滚动视图的视图,或者

[scrollView setContentView:myView];


这会将您的视图设置为滚动视图的内容视图。

或者,在Interface Builder中,您可以创建滚动视图并将自定义视图拖动到其中。

关于cocoa - NSView更改为NSScrollView,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7961372/

10-10 20:40