我在以下位置阅读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/