我在我的应用程序中使用CoreData + NSTreeController + Bindings + NSOutlineView和一个Object作为NSOutlineViewDelegate,在我的应用程序中有一个基于视图的NSOutlineView作为Sidebar SourceList.
我在outlineview委托中使用这些委托方法:
- (BOOL)outlineView:(NSOutlineView*)outlineView isGroupItem:(id)item在我的例子中,当(核心数据)父关系为nil时,项目是组.
- (NSView*)outlineView:(NSOutlineView*)outlineView viewForTableColumn:(NSTableColumn*)tableColumn item:(id)item返回headercell视图(group)或datacell视图(icon + text).
我将大纲视图的大小样式(在XCode中的Interface Builder中)设置为"侧栏系统默认值",以便当用户在系统首选项中更改大小视图时,单元格视图会更改其大小.
它工作正常......但有一些问题:

第一个单元格视图是一个组单元格(标题单元格),当展开 - 折叠时,此单元格视图的文本字段向上移动.只有第一个发生.
标题单元格中的文本字段会改变它的大小(当更改系统首选项中的大小时),但我希望标题单元格大小保持固定,如(Lion)Finder,Mail ....
标题单元格中文本字段的字符串值不显示为大写.
我在数据单元的图像视图中用作图标的图像看起来是透明的(具有0.5 alpha值或类似的值).
有帮助吗?提前致谢
解决了:
对于第一个cellview展开/折叠时的运动,使用方法setFloatsGroupRows:NO with outlineview(感谢Anton!)
如果你想要groupcells字体的固定大小(即使用户在系统偏好设置中更改它),请在IB中取消绑定带有表格单元格视图的标题单元格.
使用带有标题单元格的valueTransformer(将字符串转换为大写),字符串将显示为大写.您还可以使用nsoutlineview数据源方法执行此操作- outlineView:objectValueForTableColumn:byItem: ...
最后,图标是半透明的,因为未启用.取消选中图像单元格绑定中的值或值路径中的"有条件设置已启用"(取决于您使用的那个)
有没有办法改变一条线的颜色(Interface Builder的"垂直线"和"水平线").IB中的行分隔符是NSBox,当用作NSBoxSeparator时,我没有找到任何改变颜色的方法.
我是可可的新手.我的应用程序中有一个按钮和一个textField.我想在textfield为空时禁用该按钮,并在用户输入内容时启用.
有什么要开始的吗?Interface Builder中的任何"魔术"绑定?
谢谢
[EDITED]
我试图将appDelegate设置为NSTextfield的委托并添加了此方法(myTextfield和myButton是IBOutlets):
- (void)textDidChange:(NSNotification *)aNotification
{
if ([[myTextField stringValue]length]>0) {
[myButton setEnabled: YES];
}
else {
[myButton setEnabled: NO];
}
}
Run Code Online (Sandbox Code Playgroud)
但没有任何反应......
我的Mac App使用辅助功能API来移动(其他应用程序的)调整大小窗口.
我想将我的应用程序提交给MAS(Mac App Store).我已经读过要向MAS提交应用程序必须打开沙盒.
当我打开沙盒时,我的代码无法通过辅助功能API找到焦点窗口(始终返回NULL).问题是:辅助功能API不能与沙盒一起使用?
我注意到Mac App Store中有应用程序使用辅助功能API,现在不是强制沙盒吗?
提前致谢.