改变按钮的背景图像编程可可obj-c

时间:2015-05-20 15:07:44

标签: xcode image cocoa nsbutton nscollectionview

我正在创建NSCollection View(在Cocoa中),在大小和外观上有许多相同的按钮,除了它们的图标(或者你可能称之为背景图像)。

在我的xib文件中,我将按钮绑定到Collection View(模型键路径:representObject.foto),并且Array Controller具有MyButton类和Keys:foto类。

我使用NSImage属性创建了My Button类 - 这是正确的方法吗? 如何在AppController.m中设置我的项目中的图像,以便在运行我的应用程序时它出现在按钮上?

其他一切都应该没问题,因为我以前用标签创建了NSCollectionView并且它有效。

MyButton.h

#import <Cocoa/Cocoa.h>
@interface MyButton : NSButton
@property(retain, readwrite) NSImage *foto;
@end  

MyButton.m

#import "MyButton.h"
@implementation MyButton
@end

AppController.h

@interface AppController : NSObject {IBOutlet NSArrayController *controller;}
@property (strong) NSMutableArray *modelArray;
@end

AppController.m

#import "AppController.h"
#import "MyButton.h"
@implementation AppController

- (void) awakeFromNib {
MyButton *FirstOne = [[MyButton alloc] init];
//FirstOne.foto = ???

_modelArray = [[NSMutableArray alloc] init];
[controller addObject:FirstOne];}

@end

1 个答案:

答案 0 :(得分:1)

您的图片位于项目中的哪个位置?如果它位于.xcasset文件中,则可以使用以下命令设置图像:

FirstOne.image = [NSImage imageNamed:@"StatusBarIcon"];

You can learn about storing images in assets here。我建议使用这些资源,因为它可以让您保留项目中可能使用的所有图像,这有助于减少维护多种分辨率图像的麻烦。