Say what you will about #macOS26 and #LiquidGlass, but it fixes one thing I always disliked about NSButton.

NSButton in OS X doesn't size itself to the frame you give it. I think its because it draws a shadow, its always inset from its own frame. This makes it extremely hard to line up with other UI elements.

How does macOS26 help with this? It looks like for the first time since the original NSButton for #OpenStep, in macOS26, NSButton draws itself to its frame with no space around it. I'm extremely excited about.

I made this monstrosity of a diagram showing the same two UI's using the exact same layout code rendered in many versions of OS X and you can see that only OpenStep and macOS26 have exactly matching metrics. 🥳

Real NeXT black hardware is too rich for my blood these days. I should never have given away my cube in 2017 🥺 #OpenStep
Thank goodness for this ancient guide from Apple still being online. If it were not for this I would never be able to create an NSTextView in code. Its so fiddly. #OpenStep
https://developer.apple.com/library/archive/documentation/Cocoa/Conceptual/TextUILayer/Tasks/TextInScrollView.html#//apple_ref/doc[…]000938-CJBBIAAF
Putting an NSTextView Object in an NSScrollView

Explains how to implement the main, high-level interface to the Cocoa text system.

Omg. This is so dangerous. A bunch NeXT black hardware just dropped on Japanese Yahoo. I must resist. I have no space for this stuff… but I want it so badly! #OpenStep
It doesn't look great, but yes [Not]Soulver for #OpenStep builds and runs with no issues in Xcode 26 and macOS 26. I think I just need to pick some new button styles and it will be fully up and running again 😎 #wwdc25

Finally finished removing the NIB for the About, Keypad, and Settings windows in [Not]Soulver for #OpenStep. I think it came out really well. Things line up super nicely now.

Everything is pixel perfect except for the General page on OSX. At some point, Apple stopped letting you set an arbitrary height for an NSPopupButton... which is good because they were ugly... but now my layout is meh for that page. I will need to come up with a new design.

Earlier I said I did some Vibe coding by asking Gemini to convert the XIB file into objective C code. I did NOT end up using any of that code, but I can report that Gemini produced 1,577 lines of Objective-C slop and I ended up producing 915 lines of code.

So yay for human programmers! Less code is better code IMHO

https://github.com/jeffreybergier/NotSoulver/pull/44/files

Ok! Now the About window for [Not]Soulver for #OpenStep can resize both vertically AND horizontally! Amazing technology, I know 🤣

The About window is done and that means the next window I need to migrate away out of the NIB is also the most complex, the Settings window 😳

https://github.com/jeffreybergier/NotSoulver/pull/42/files

Ok, so I admit the view is not very complex, but in [Not]Soulver for #OpenStep, I don't need any overly complex autolayout code. Just a few autoresizing masks will allow for the expected behavior. Here is a video of the same Objective-C code running 30 years apart with the exact same result! Pretty cool!

https://github.com/jeffreybergier/NotSoulver/commit/c70a7ffe564a46e4158ba9587526b1bc661b76c6

It took quite a bit of work, but I started removing the NIBs from [Not]Soulver for #OpenStep.

Why do this? I generally advise using Nibs, especially on the Mac because they give you a lot of behavior for free. However, the NIB file format is extremely unstable over the years and having to maintain 4 NIB files in different formats for each actual NIB is a bit to much to maintain.

So far, I did only my first of 3 windows, the keypad panel, but I think it looks good. More uniform, consistent, and easier to adapt its appearance across time.

https://github.com/jeffreybergier/NotSoulver/pull/41/files#diff-a889b7eba127bfb2f576b3187665dad69ad144b8798f49f4bbcd52a71e090b31

Not very exciting, but I finally got around to updating the README.md file for [Not]Soulver for #OpenStep. It has instructions for users and for developers.

If you're a user and just want to download the app, the instructions are now easy.

If you're a developer and interested in a high level overview of how the app works, there is more for you now.

https://github.com/jeffreybergier/NotSoulver/blob/07c4a601a052fdc4d56875faf203225924ced54a/README.md