以编程方式更改按钮的背景图像 cocoa obj-c
Change background image of a button programmatically cocoa obj-c
我正在创建 NSCollection 视图(在 Cocoa 中),其中包含许多大小和外观相同的按钮,除了它们的图标(或者您可以称它们为背景图像)。
在我的 xib 文件中,我将按钮绑定到集合视图(模型键路径:representedObject.foto)并且数组控制器具有 class 的 MyButton 和键:foto。
我用 NSImage 属性 创建了我的按钮 class - 这是正确的方法吗?
如何在 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。我会推荐使用这些资产,因为它可以让您组织好您可能在项目中使用的所有图像,并且有助于减少为多种分辨率维护图像的麻烦。
我正在创建 NSCollection 视图(在 Cocoa 中),其中包含许多大小和外观相同的按钮,除了它们的图标(或者您可以称它们为背景图像)。
在我的 xib 文件中,我将按钮绑定到集合视图(模型键路径:representedObject.foto)并且数组控制器具有 class 的 MyButton 和键:foto。
我用 NSImage 属性 创建了我的按钮 class - 这是正确的方法吗? 如何在 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。我会推荐使用这些资产,因为它可以让您组织好您可能在项目中使用的所有图像,并且有助于减少为多种分辨率维护图像的麻烦。