xcode - 以编程方式更改按钮的背景图像 cocoa obj-c

标签 xcode image cocoa nsbutton nscollectionview

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

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

我使用 NSImage 属性创建了我的 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

最佳答案

您的图像位于项目中的什么位置?如果它在 .xcasset 文件中,那么您可以使用以下命令设置图像:

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

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

关于xcode - 以编程方式更改按钮的背景图像 cocoa obj-c,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30353630/

相关文章:

javascript - 从 HTML Canvas 获取像素的颜色而不使用 getImageData()?

objective-c - 如何在不包含所需框架的情况下构建框架?

objective-c - 何时使用实例变量,何时使用属性

ios - 添加到 ScrollView 的 UIView 不适合全屏,导航栏位于顶部

Java加载图像更快

ios - 二进制拒绝 - Interface.plist 上的接口(interface)错误 - Watch App

python - Flask网页找不到图片文件

ios - 我如何在 GCD 中将一个 block 添加到调度队列的前面?

c++ - 无法使用 XCode 7.0.1 获取 C++14

ios - 预先选择单元格中的项目