NSPredicateEditor 是不可见的

Posted

技术标签:

【中文标题】NSPredicateEditor 是不可见的【英文标题】:NSPredicateEditor is invisible 【发布时间】:2013-04-23 12:51:09 【问题描述】:

我尝试了很多方法来实现 NSPredicateEditor,但得到了空白的编辑器视图。也尝试了一个新项目,但我仍然得到编辑器的空白视图。我想知道是什么问题。这个谓词是否适用于任何特定的观点。代码是

AppDelegate.h  
@interface AppDelegate : NSObject    
NSPredicate *predicate;  
  
@end  

AppDelegate.m  
#define DEFAULT_PREDICATE @"firstname = 'John' AND lastname = 'Doe'"  
-(id)init  
  
self = [super init];  
if (self != nil)  
  
predicate = [[NSPredicate predicateWithFormat:DEFAULT_PREDICATE] retain];  
  
return self;  
  
@end

【问题讨论】:

我们不是千里眼。向我们展示您的代码。 如果有一个零行代码,那么我也会得到空白窗口,它应该显示编辑器。 【参考方案1】:

隐藏在 NSPredicateEditorRowTemplate 的文档中,它声明“设置谓词编辑器后,您通常会向其发送 setObjectValue: 消息以恢复已保存的谓词”

所以假设您在界面生成器中有一个模板,其键路径为“名称”,您只需要在代码中使用这样的一行来显示模板:

[predicateEditor setObjectValue:[NSPredicate predicateWithFormat:@"Name CONTAINS \"\""]];

您也可以这样做来加载行:

[predicateEditor addRow:self];

【讨论】:

以上是关于NSPredicateEditor 是不可见的的主要内容,如果未能解决你的问题,请参考以下文章

关闭 NSPredicateEditor 动画

NSPredicateEditor 只是不会出现

NSPredicateEditor 的 UI 约定

NSPredicateEditor,忽略没有搜索词的行?

NSPredicateEditor 不调整 NSTextField 的大小

使用 NSPredicateEditor 编辑 NSPredicate