gpt4 book ai didi

cocoa - 在 NSTableView 中显示图像

转载 作者:行者123 更新时间:2023-12-03 18:00:21 25 4
gpt4 key购买 nike

我正在创建一个表格 View 并使用NSDictionaryController
我的数据来自 case.dict 文件
我正在使用这段代码:

@interface MyClass : NSWindowController{

IBOutlet NSTableView *tableView;
IBOutlet NSDictionaryController *dictController;
IBOutlet NSArrayController *peopleList;
NSDictionary *currentPerson;
}

@property (retain) NSDictionary *currentPerson;

MyClass.m 文件

- (void)windowDidLoad
{
[super windowDidLoad];

NSBundle *bundle = [NSBundle mainBundle];
NSString *path = [bundle pathForResource: @"case" ofType: @"dict"];
NSArray *listFromFile = [NSArray arrayWithContentsOfFile: path];

[tableView setSortDescriptors:[NSArray arrayWithObject:[[[NSSortDescriptor alloc] initWithKey:@"icon" ascending:YES] autorelease]]];

[peopleList addObserver:self forKeyPath:@"selectionIndexes" options:NSKeyValueObservingOptionNew context:nil];

if (listFromFile != nil)
{
[peopleList addObjects:listFromFile];
}
[peopleList setSelectionIndex:0];

[dictController bind:NSContentDictionaryBinding toObject:self withKeyPath:@"currentPerson" options:nil];

}

它工作正常,表格为我提供了存储在 case.dict 文件中 索引 0(ZERO) 的图像名称。
现在谁能解释一下我如何获取表中的所有图像而不是它们的名字?
我是 cocoa 开发的新手。
任何帮助将不胜感激..!!

编辑:如果我想使用类似的东西

if (listFromFile != nil)
{
[peopleList addObjects:[NSImage ImageNAmed:listFromFile];
}

那我该怎么办?

提前致谢..!!

<小时/>

我无法找到此问题的解决方案。
有人可以帮我吗?

我在表格列中拖动了 NSImageCell ,并且还与 NSArrayController 进行了绑定(bind)。
当我运行应用程序时,它显示空表,没有任何我的图像并且被卡住。我什至无法关闭它。
enter image description here

它说的是这样的

2011-09-20 16:36:08.647 dictTable[1141:707] NSImageCell's object value must be an NSImage.
2011-09-20 16:36:08.651 dictTable[1141:707] (
0 CoreFoundation 0x00007fff92984986 __exceptionPreprocess + 198
1 libobjc.A.dylib 0x00007fff8eb4fd5e objc_exception_throw + 43
2 CoreFoundation 0x00007fff929847ba +[NSException raise:format:arguments:] + 106
3 CoreFoundation 0x00007fff92984744 +[NSException raise:format:] + 116
4 AppKit 0x00007fff9890e051 -[NSImageCell setObjectValue:] + 109
5 AppKit 0x00007fff98a5f261 -[NSValueBinder _adjustObject:mode:observedController:observedKeyPath:context:editableState:adjustState:] + 901
6 AppKit 0x00007fff98ea7aee -[NSValueBinder updateTableColumnDataCell:forDisplayAtIndex:] + 145
7 AppKit 0x00007fff98ee730d -[_NSBindingAdaptor tableColumn:willDisplayCell:row:] + 112
8 AppKit 0x00007fff9890d948 -[NSTableView preparedCellAtColumn:row:] + 654
9 AppKit 0x00007fff9891e787 -[NSTableView _drawContentsAtRow:column:withCellFrame:] + 42
10 AppKit 0x00007fff9891ccbe -[NSTableView drawRow:clipRect:] + 1647
11 AppKit 0x00007fff9891c49b -[NSTableView drawRowIndexes:clipRect:] + 565
12 AppKit 0x00007fff9891a6f3 -[NSTableView drawRect:] + 1390
13 AppKit 0x00007fff98881768 -[NSView _drawRect:clip:] + 3758
14 AppKit 0x00007fff988af131 -[NSView _recursiveDisplayAllDirtyWithLockFocus:visRect:] + 1583
15 AppKit 0x00007fff988af55d -[NSView _recursiveDisplayAllDirtyWithLockFocus:visRect:] + 2651
16 AppKit 0x00007fff9887ed46 -[NSView _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:] + 1032
17 AppKit 0x00007fff9887fffb -[NSView _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:] + 5821
18 AppKit 0x00007fff9887fffb -[NSView _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:] + 5821
19 AppKit 0x00007fff9887fffb -[NSView _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:] + 5821
20 AppKit 0x00007fff9887e23c -[NSThemeFrame _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:] + 270
21 AppKit 0x00007fff9887964a -[NSView _displayRectIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:] + 4755
22 AppKit 0x00007fff98872093 -[NSView displayIfNeeded] + 1676
23 AppKit 0x00007fff988717d3 _handleWindowNeedsDisplayOrLayoutOrUpdateConstraints + 648
24 CoreFoundation 0x00007fff92944647 __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 23

这是我的cases.dict 文件
enter image description here

任何人请帮助我。

最佳答案

一般来说,它的工作原理是这样的 - 您必须将 NSImageCell 从 Library 拖到要在其中显示图像的表列,并将其 value 属性绑定(bind)到 Controller 对象的图像属性。

希望这有帮助!

关于cocoa - 在 NSTableView 中显示图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7468780/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com