在界面构建器中,我添加了一个NSOutlineVIEw,突出显示设置为SourceList,内容模式设置为VIEw Based.因此,提供了两个默认表格单元视图(一个headerCell设置为标识符的header单元格和一个DataCell设置为标识符的数据单元格)
这就是它在界面构建器中的样子,标题单元格视图正确显示灰蓝色textFIEld,而数据单元格视图具有图像视图和textFIEld具有正确的颜色和字体设置
为了提供视图,我使用以下代码返回DataCell视图或headerCell视图,并根据接口构建器中设置的相应标识符相应地设置单元格的textFIEld.
- (NSVIEw *)outlineVIEw:(NSOutlineVIEw *)outlineVIEw vIEwFortableColumn:(NStableColumn *)tableColumn item:(ID)item { NStableCellVIEw *result = nil; if ([item isKindOfClass:[NSMutableDictionary class]]) { result = [outlineVIEw makeVIEwWithIDentifIEr:@"headerCell" owner:self]; ID parentObject = [outlineVIEw parentForItem:item] ? [outlineVIEw parentForItem:item] : groupedRoster; [[result textFIEld] setStringValue:[[parentObject allKeys] objectAtIndex:0]]; } else { result = [outlineVIEw makeVIEwWithIDentifIEr:@"DataCell" owner:self]; [item nickname] ? [[result textFIEld] setStringValue:[item nickname]] : [[result textFIEld] setStringValue:[[item jID] bare]]; } return result;}
运行它看起来如下所示的一切.
任何人都可以向我提供提示,为什么标题单元格在选择时既不是粗体,也不是正确的颜色?
解决方法 您需要实现-outlineVIEw:isGroupItem:delegate方法并为标题行返回YES.这将标准化字体并使用右侧的“显示/隐藏”按钮替换左侧的显示三角形.您仍然需要手动大写字符串以获得完整效果.我不确定上面的组行委托方法是否使选择样式看起来没问题.但是,您通常不希望在源列表中可以选择标题行,您可以通过-outlineVIEw:shouldSelectItem:delegate方法为标题项返回NO.
总结以上是内存溢出为你收集整理的cocoa – 基于视图的NSOutlineView标题单元格字体问题全部内容,希望文章能够帮你解决cocoa – 基于视图的NSOutlineView标题单元格字体问题所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)