将 NSPredicateEditor 添加到 NSScrollView 时出现 UI 故障

Posted

技术标签:

【中文标题】将 NSPredicateEditor 添加到 NSScrollView 时出现 UI 故障【英文标题】:UI glitches when adding NSPredicateEditor to NSScrollView 【发布时间】:2012-07-13 17:41:33 【问题描述】:

我正在尝试在 NSScrollView 中显示 NSPredicateEditor,以便用户可以使用编辑器进行无限大的查询。一切都或多或少地工作,但是只有当编辑器嵌套在滚动视图中时才会发生一些奇怪的 UI 故障,而不会发生。这是我在滚动视图中设置编辑器的方式:

predicateEditor = [[NSPredicateEditor alloc] init];
scrollView = [[NSScrollView alloc] initWithFrame:[[self view] frame]];
[scrollView setDocumentView:predicateEditor];
[scrollView setHasVerticalScroller:YES];
[scrollView setAutohidesScrollers:YES];

如果我尝试通过快速向编辑器添加行来“破坏”它,UI 会出现如下乱码:

但问题是,如果我不将编辑器嵌套在scrollView中,是不可能发生这个错误的。

重申一下,我唯一不同的是嵌套在 NSScrollView 中。我需要注意这个问题吗?

谢谢!

【问题讨论】:

我注意到您以编程方式添加滚动视图。您是否尝试过从 IB 添加它?它默认带有一个滚动视图包装器。我有一个与您的情况相当的谓词编辑器,它工作得很好...... 【参考方案1】:

在测试了 Roger 的评论之后,我可以验证在 IB 中执行此操作可以达到预期的结果。我不知道为什么它不能以编程方式很好地工作,但是很好。

【讨论】:

以上是关于将 NSPredicateEditor 添加到 NSScrollView 时出现 UI 故障的主要内容,如果未能解决你的问题,请参考以下文章

NSPredicateEditor 只是不会出现

关闭 NSPredicateEditor 动画

如何持久化 NSPredicateEditor NSPredicateEditorRowTemplates 数据

如何更改 NSPredicateEditor 行模板中左表达式的顺序?

使用 NSPredicateEditor,有没有办法免费获得所有 Finder 搜索类别?

自定义 NSPredicateEditor