小编jaz*_*man的帖子

NSOutlineView中数组的枚举对象的自定义部分

我正在尝试为列出的对象创建一个带有自定义标头组(父节点)的NSOutlineVew.(注意:我有基于单元格的NSOutlineView).例如,它看起来像Xcode"Navigator"或Numbers侧边栏.我使用每个类别的分隔属性的默认组,但它看起来不像我想要的那样.我需要一个父节点(单元格),我可以直观地调整(添加一个控件元素和图像).

我尝试通过将一组对象传递给NSDictionary来完成此操作,为每个组提供特定的特定键.结果,通过NSLog一切都正确显示,但是这个变量作为程序NSOulineView的源传输失败.

ProjectViewController.h

@interface ProjectViewController : NSViewController <NSOutlineViewDataSource, NSObject> {
    IBOutlet NSOutlineView          *outlineView;
    FSEntity                        *content;
}

@property (readonly, assign) NSMutableArray *objects;

@end
Run Code Online (Sandbox Code Playgroud)

ProjectViewController.m

@implementation ProjectViewController

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        // Initialization code here.    
        // Setting default path to the local file or directory
        NSString *home = NSHomeDirectory();
        NSURL *url = [[NSURL alloc] initFileURLWithPath:home];
        content = [[FSEntity alloc] initWithURL:url];

        [self defineContentNSOutlineView];
        NSLog(@"Array: %@",_objects);

        // Basic ?onfiguration an instance NSOutlineView
        [self configurationNSOutlineView]; …
Run Code Online (Sandbox Code Playgroud)

objective-c nsoutlineview nsmutablearray

6
推荐指数
1
解决办法
428
查看次数

如何在操作栏中内联显示选项卡

有没有办法代替图标和活动标签显示标签(我想完成它,但找不到任何解决方案).我正在尝试以垂直显示方向(纵向)显示活动栏(不在下方)内的导航选项卡.我看了android库"ActionBarSherlock",一个"Styled"的例子,但有标签显示与标准包完全相同.

活动栏示例("纵向"方向):

标准显示活动栏中的选项卡

+------------------------------------------------------------------------------+
| +---+                                                              /˜\    +  |
| |   | Example                                                      \_/    +  |
| +---+                                                                \    +  |
+------------------------------------------------------------------------------+
|                         |                          |                         |
|        Section 1        |        Section 2         |        Section 3        |
|                         |                          |                         |
+------------------------------------------------------------------------------+
Run Code Online (Sandbox Code Playgroud)

它的外观示例(没有图标和标签的活动栏,里面有标签)

+------------------------------------------------------------------------------+
|       |       |                                                    /˜\    +  |
| Tab 1 | Tab 2 | Tab 3                                              \_/    +  |
|       |       |                                                      \    +  |
+------------------------------------------------------------------------------+
Run Code Online (Sandbox Code Playgroud)

如果有人能告诉我如何在2.2到4.0版本中实现这一点,那就太好了.请帮我解决这个问题.

android

6
推荐指数
1
解决办法
419
查看次数

基于视图的"源列表"NSOutlineView不显示项目的图标和标题

将NSOutlineView基于单元格更改为基于视图后,它不会显示文件系统树的图标和标题.这是我的代码:

- (void)outlineView:(NSOutlineView *)outlineView willDisplayCell:(id)cell forTableColumn:(NSTableColumn *)tableColumn item:(id)item {
    if ([[tableColumn identifier] isEqualToString:@"name"])
        return [(ImageAndTextCell *)cell setTextFieldImage:[item icon]];
}

- (id)outlineView:(NSOutlineView *)outlineView objectValueForTableColumn:(NSTableColumn *)tableColumn byItem:(id)item {
    return [((ConstructorFSEntity *)item) title];
}

- (NSView *)outlineView:(NSOutlineView *)outlineView viewForTableColumn:(NSTableColumn *)tableColumn item:(id)item {
    if ([item isKindOfClass:[FSEntity class]]) {
        return [outlineView makeViewWithIdentifier:@"HeaderCell" owner:self];
    } else {
        return [outlineView makeViewWithIdentifier:@"DataCell" owner:self];
    }
}
Run Code Online (Sandbox Code Playgroud)

我还有一个问题.如何将枚举项(文件系统项的数组)放入单元格"DataCell",并将"HeaderCell"声明为父文件夹(组)并为其分配标题(例如,@"根文件夹")和路径班级.因为,现在以前的基于视图的方法,仅在"HeaderCell"或"DataCell"中显示枚举项目,当我尝试为"HeaderCell"分配一些值时,应用程序崩溃.你能帮帮我吗?

cocoa objective-c nsoutlineview

5
推荐指数
1
解决办法
2753
查看次数