在10.12中有几个巨大的变化,但在我看来最大的是新的自动布局系统(或修改/重写旧的...谁知道).我准备了一个简单的项目来证明这个问题.它与通过按钮折叠拆分视图项目有关.它只发生在10.12.您需要做的就是编译项目并单击按钮.将出现错误:
2016-10-04 15:10:28.284296 test-12 [64932:7425277] [布局]检测到缺失约束.它无法放置,因为没有足够的约束来完全定义大小和原点.添加缺少的约束,或设置translatesAutoresizingMaskIntoConstraints = YES,并为您生成约束.如果此视图在macOS 10.12及更高版本上手动布局,您可以选择不从覆盖中调用[super layout].在DETECTED_MISSING_CONSTRAINTS上设置断点以进行调试.此错误仅记录一次.
设置断点后,我们可以发现有问题的视图是:
(lldb) po $arg1
<NSSplitDividerView: 0x618000161980>
Run Code Online (Sandbox Code Playgroud)
我完全错了还是10.12有明确的问题?如果可能的话,请建议如何防止此类错误.
该项目可以从github下载
再次感谢您的帮助.
I. Nikolov
我正在用一个相对较小的文本编辑器来完成一个不错的应用程序。在语法突出显示的实现过程中,我发现自己需要更改已识别标记的前景色属性。我注意到有一个NSTextStorage属性:
var fixesAttributesLazily: Bool { get }
Run Code Online (Sandbox Code Playgroud)
有关的文档是:
一个布尔值,指示文本存储对象是否延迟固定属性。(只读)
讨论区
子类化时,此属性的默认值为NO,这意味着子类在属性更改时会立即修复。系统的具体子类覆盖此属性并将其设置为YES。
我真的不知道该怎么解释...但这就是我所做的:
textStorage(textStorage: NSTextStorage, didProcessEditing editedMask: NSTextStorageEditActions, range editedRange: NSRange, changeInLength delta: Int)(这是NSTextStorage的委托方法)。在这里,我正在检查此属性的值-它为FALSE。fixesAttributesLazily属性的值。也许我对NSTextStorage的实现是不好的,或者至少不是很复杂。欢迎在后台或懒惰地或...应用属性的任何技巧。
另外:我知道有很多方法可以优化突出显示的语法。它可能会部分突出显示,根据更改的范围使用某种逻辑...等等。我正在寻找的是一种在后台处理属性更改的方法。例如,当前,当我将4 MB文件粘贴到文本视图时,它首先突出显示它(需要2-3秒),然后将其可视化。我要寻找的效果是立即显示文字,并在一段时间后显示颜色。
我正在处理的项目是用Swift编写的。
预先感谢大家的帮助。您可以通过gmail dot com上的ivailon与我联系以获取详细信息,因为我不想在这里公开该应用程序...至少现在还没有;-)
如果有人有经验WKWebView,请分享如何使视图的背景透明.该WebView对象有这样的选项,var drawsBackground: Bool { get set }但它缺少WKWebView类.我在网上搜索了......什么都没发现.在时间之前,可以通过opaque财产这样做,但现在不行了.有吸气剂isOpaque......就是这样.我不想通过CSS来做,并且已经尝试了其他所有内容,例如:
webview.wantsLayer = true
webview.layer?.backgroundColor = NSColor.clear.cgColor
如果有人可以帮忙......
I. Nikolov