{"id":49156,"date":"2025-09-04T15:15:38","date_gmt":"2025-09-04T19:15:38","guid":{"rendered":"https:\/\/mjtsai.com\/blog\/?p=49156"},"modified":"2025-09-04T15:15:38","modified_gmt":"2025-09-04T19:15:38","slug":"appkitui","status":"publish","type":"post","link":"https:\/\/mjtsai.com\/blog\/2025\/09\/04\/appkitui\/","title":{"rendered":"AppKitUI"},"content":{"rendered":"<p><a href=\"https:\/\/github.com\/dagronf\/AppKitUI\">Darren Ford<\/a>:<\/p>\n<blockquote cite=\"https:\/\/github.com\/dagronf\/AppKitUI\"><p>An AppKit UI toolkit help you create and manage <code>NSView<\/code> content easily<\/p><ol><li>Remove dependence on using XIBs when creating UI views<\/li><li>Reduce boilerplate code when manually creating <code>NSView<\/code> UI content.<\/li><li>Easily bind data between controls<\/li><li>Easily attach actions to your controls (no more delegates or target\/actions!)<\/li><li>Use Xcode&rsquo;s preview pane to view your designs!!<\/li><\/ol><\/blockquote>\n\n<p>There&rsquo;s a <a href=\"https:\/\/github.com\/dagronf\/AppKitUI\/tree\/main\/Demos\/AppKitUI%20Demo\/AppKitUI%20Demo\">demo<\/a>.<\/p>\n\n<p>Previously:<\/p>\n<ul>\n<li><a href=\"https:\/\/mjtsai.com\/blog\/2024\/03\/11\/mac-dialog-in-auto-layout-vs-swiftui\/\">Mac Dialog in Auto Layout vs. SwiftUI<\/a><\/li>\n<li><a href=\"https:\/\/mjtsai.com\/blog\/2022\/09\/09\/using-lazy-properties-for-views\/\">Using Lazy Properties for Views<\/a><\/li>\n<li><a href=\"https:\/\/mjtsai.com\/blog\/2022\/07\/13\/interfacebuilder-swift\/\">InterfaceBuilder.swift<\/a><\/li>\n<li><a href=\"https:\/\/mjtsai.com\/blog\/2017\/05\/01\/life-without-interface-builder\/\">Life Without Interface Builder<\/a><\/li>\n<li><a href=\"https:\/\/mjtsai.com\/blog\/2016\/10\/18\/working-without-a-nib\/\">Working Without a Nib<\/a><\/li>\n<\/ul>","protected":false},"excerpt":{"rendered":"<p>Darren Ford: An AppKit UI toolkit help you create and manage NSView content easilyRemove dependence on using XIBs when creating UI viewsReduce boilerplate code when manually creating NSView UI content.Easily bind data between controlsEasily attach actions to your controls (no more delegates or target\/actions!)Use Xcode&rsquo;s preview pane to view your designs!! There&rsquo;s a demo. Previously: [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"apple_news_api_created_at":"2025-09-04T19:15:41Z","apple_news_api_id":"77125f5f-872b-47b4-9565-9deac85e60c1","apple_news_api_modified_at":"2025-09-04T19:15:41Z","apple_news_api_revision":"AAAAAAAAAAD\/\/\/\/\/\/\/\/\/\/w==","apple_news_api_share_url":"https:\/\/apple.news\/AdxJfX4crR7SVZZ3qyF5gwQ","apple_news_coverimage":0,"apple_news_coverimage_caption":"","apple_news_is_hidden":false,"apple_news_is_paid":false,"apple_news_is_preview":false,"apple_news_is_sponsored":false,"apple_news_maturity_rating":"","apple_news_metadata":"\"\"","apple_news_pullquote":"","apple_news_pullquote_position":"","apple_news_slug":"","apple_news_sections":"\"\"","apple_news_suppress_video_url":false,"apple_news_use_image_component":false,"footnotes":""},"categories":[4],"tags":[200,69,30,2598,74,71],"class_list":["post-49156","post","type-post","status-publish","format-standard","hentry","category-programming-category","tag-autolayout","tag-cocoa","tag-mac","tag-macos-15-sequoia","tag-opensource","tag-programming"],"apple_news_notices":[],"_links":{"self":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/49156","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/comments?post=49156"}],"version-history":[{"count":1,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/49156\/revisions"}],"predecessor-version":[{"id":49157,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/49156\/revisions\/49157"}],"wp:attachment":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/media?parent=49156"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/categories?post=49156"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/tags?post=49156"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}