Basic HTML strings do not display correctly on macOS Sonoma, I am wondering if there is an alternative technique that can be utilized. There was a minor change in macOS 14.2, which fixed some cases but made others much worse.
Consider the following code:
override func viewDidLoad() {
super.viewDidLoad()
let html = """
<table width="100%" border="1" style="color: white">
<tr>
<td align="left">Left</td>
<td align="right">Right</td>
</tr>
</table>
"""
let data = Data(html.utf8)
let definition = try! NSAttributedString(data: data, options: [.documentType: NSAttributedString.DocumentType.html, .characterEncoding: NSNumber(value: String.Encoding.utf8.rawValue)], documentAttributes: nil)
let frameRect = NSRect(x: 100, y: 0, width: 300, height: 200)
let textView = NSTextView(frame: frameRect)
textView.textStorage?.setAttributedString(definition)
textView.backgroundColor = .clear
view.addSubview(textView)
}
On macOS 14 (23A5312d) it looks like this (FB13170237):
On macOS 14.2 (23C64) it looks like this (FB13465833):
Post
Replies
Boosts
Views
Activity
Recently simulators have not been able to be downloaded from Xcode, after endlessly trying the transfer rate was well below 100kb/s and would fail after a short while. The speed was on average 100x slower than other servers with the exception of a short spike of passable speeds.
Because Xcode for some reason doesn't support resuming simulator downloads, I downloaded the simulators directly from the dvtdownloadableindex file using two different methods but the fileSize values consistently differed slightly from the downloaded files.
This resulted in a Missing Signature error when adding the simulator with xcrun simctl runtime add.
There is a macFUSE bug that can result in an Input/output error - https://github.com/osxfuse/osxfuse/issues/45 when listing a directory. In most cases this doesn't cause any major issues, just a "ls: mount: Input/output error" message when running ls.
The problem is that the contentsOfDirectory(at:includingPropertiesForKeys:options:) now does not work, however, the contentsOfDirectory(atPath:) method does.
There appears to be a difference in how these methods handle errors, although the documentation doesn't seem to suggest this.
The following code returns an array of strings without an error:
FileManager.default.contentsOfDirectory(atPath: "/Users/user")
The following code results in an error:
FileManager.default.contentsOfDirectory(at: URL.init(fileURLWithPath:"/Users/user"), includingPropertiesForKeys: nil)
REPL:
$E3: NSError = domain: "NSCocoaErrorDomain" - code: 256 {
_userInfo = 3 key/value pairs {
[0] = {
key = "NSURL"
value = "file:///Users/user/mount"
}
[1] = {
key = "NSFilePath"
value = "/Users/user/mount"
}
[2] = {
key = "NSUnderlyingError"
value =
}
}
}
Xcode:
Error Domain=NSCocoaErrorDomain Code=256 "The file “mount” couldn’t be opened." UserInfo={NSURL=file:///Users/user/mount, NSFilePath=/Users/user/mount, NSUnderlyingError=0x600000289740 {Error Domain=NSPOSIXErrorDomain Code=5 "Input/output error”}}
Passing [] as the includingPropertiesForKeys value gives the same result.
It's also interesting that in the REPL the NSUnderlyingError value is missing.