All Projects → LeoNatan → LNPropertyListEditor

LeoNatan / LNPropertyListEditor

Licence: MIT License
A property list editor for macOS, similar to Xcode's.

Programming Languages

objective c
16641 projects - #2 most used programming language
ruby
36898 projects - #4 most used programming language
Objective-C++
1391 projects
shell
77523 projects
swift
15916 projects

Projects that are alternatives of or similar to LNPropertyListEditor

Licensegenerator Ios
Build script that recursively searches for LICENSE files and generates a Settings.bundle friendly plist.
Stars: ✭ 186 (+135.44%)
Mutual labels:  plist
Plist-Binary sublime
De/Encode .plist files between XML and binary format
Stars: ✭ 18 (-77.22%)
Mutual labels:  plist
transfer
Converts from one encoding to another. Supported formats HCL ⇄ JSON ⇄ YAML⇄TOML⇄XML⇄plist⇄pickle⇄properties ...
Stars: ✭ 70 (-11.39%)
Mutual labels:  plist
Python Benedict
dict subclass with keylist/keypath support, I/O shortcuts (base64, csv, json, pickle, plist, query-string, toml, xml, yaml) and many utilities. 📘
Stars: ✭ 204 (+158.23%)
Mutual labels:  plist
GoogleDriveBrowser
Goole Drive Download Library for iOS
Stars: ✭ 13 (-83.54%)
Mutual labels:  plist
SwiftyPlistManager
Lightweight plist data management framework for iOS 10.3+
Stars: ✭ 76 (-3.8%)
Mutual labels:  plist
Universaljavaapplicationstub
universalJavaApplicationStub - an alternative Application launcher script for Java based macOS Apps that works with both Apple's and Oracle's PList format and supports the old Apple Java 6 as well as all the latest Oracle/OpenJDK/Adopt/Corretto JRE's/JDK's. Plus it supports drag&drop to the Dock icon 🎉
Stars: ✭ 174 (+120.25%)
Mutual labels:  plist
IOSIphoneHttps
ios超级签-ipa-新版IOS苹果企业签,直接签名直接下载安装,无需进入appstore商城——不需要经过App Store直接下载游戏吗?下载完不知道怎么安装?需要通过第三方软件来安装?绕过苹果检测,测试可以使用HTTPD或者Tomcat构建,使用plist文件
Stars: ✭ 61 (-22.78%)
Mutual labels:  plist
GenericLocalPersistence
GenericLocalPersistence is a clean and easy-to-use code that is useful for integrating local storage like UserDefaults, PList, Keychain.
Stars: ✭ 17 (-78.48%)
Mutual labels:  plist
AckAck
Acknowledgement Plist Generator
Stars: ✭ 37 (-53.16%)
Mutual labels:  plist
Hackintosh-ThinkPad-E14
Files required for prepping a Hackintosh on ThinkPad E14.
Stars: ✭ 27 (-65.82%)
Mutual labels:  plist
Giotto
Theme manager for your app: apply styles to anything you want through a plist file
Stars: ✭ 18 (-77.22%)
Mutual labels:  plist
management tools
A collection of scripts and packages to simplify OS X management.
Stars: ✭ 93 (+17.72%)
Mutual labels:  plist
Dd Plist
A java library providing support for ASCII, XML and binary property lists.
Stars: ✭ 201 (+154.43%)
Mutual labels:  plist
scout
Reading and writing in JSON, Plist, YAML and XML data made simple when the data format is not known at build time. Swift library and command-line tool.
Stars: ✭ 110 (+39.24%)
Mutual labels:  plist
L10n Swift
Localization of the application with ability to change language "on the fly" and support for plural form in any language.
Stars: ✭ 177 (+124.05%)
Mutual labels:  plist
ufolint
UFO source format linter
Stars: ✭ 23 (-70.89%)
Mutual labels:  plist
defaults.sh
 User Defaults Plist → Shell Script converter with Regex filtering
Stars: ✭ 20 (-74.68%)
Mutual labels:  plist
hackintosh-gigabyte-x570-aorus-elite
My EFI folder for Ryzen Hackintosh, as known as Ryzentosh.
Stars: ✭ 25 (-68.35%)
Mutual labels:  plist
Configuration
Hierarchical configuration manager for Swift applications
Stars: ✭ 72 (-8.86%)
Mutual labels:  plist

LNPropertyListEditor

A property list editor for macOS, similar to Xcode's. Has full support for macOS Mojave light and dark appearance.

Property list editor

Property list editor

Adding to Your Project

Swift Package Manager

Swift Package Manager is the recommended way to integrate LNPropertyListEditor in your project.

LNPropertyListEditor supports SPM versions 5.1.0 and above. To use SPM, you should use Xcode 11 to open your project. Click File -> Swift Packages -> Add Package Dependency, enter https://github.com/LeoNatan/LNPropertyListEditor. Select the version you’d like to use.

You can also manually add the package to your Package.swift file:

.package(url: "https://github.com/LeoNatan/LNPropertyListEditor.git", from: "1.0")

And the dependency in your target:

.target(name: "BestExampleApp", dependencies: ["LNPropertyListEditor"]),

Carthage

Add the following to your Cartfile:

github "LeoNatan/LNPropertyListEditor"

Make sure you follow the Carthage integration instructions here.

Manual

Drag the LNPropertyListEditor.xcodeproj project to your project, and add LNPropertyListEditor.framework to Embedded Binaries in your project target's General tab. Xcode should sort everything else on its own.

CocoaPods

CocoaPods is not supported. There are many reasons for this. Instead of CocoaPods, use Carthage. You can continue using CocoaPods for for your other dependencies and Carthage for LNPropertyListEditor.

Using the Framework

Swift

While the framework is written in Objective C, it uses modern Objective C syntax, so using the framework in Swift should be very easy and intuitive.

Project Integration

Import the module in your project:

@import LNPropertyListEditor;

Usage

Either using Interface Builder or in code, add an LNPropertyListEditor view to your user interface.

To set a represented object, set the propertyList property.

guard let propertyListURL = Bundle.main.url(forResource: "Some", withExtension: "plist"),
   let propertyListData = try? Data(contentsOf: propertyListURL),
   let propertyListObject = try? PropertyListSerialization.propertyList(from: propertyListData, options: [], format: nil) as? [String: AnyObject] else {
	return
}

plistEditor.propertyListObject = propertyListObject

Supported object types: Dictionaries, arrays, strings, dates, datas, booleans and numbers (dictionaries and arrays can contains nested children of the aforementioned types).

Delegate

Implement the LNPropertyListEditorDelegate protocol to listen to various events, or control what aspects of the property list can be edited.

plistEditor.delegate = self
//...
func propertyListEditor(_ editor: LNPropertyListEditor, didChange node: LNPropertyListNode, changeType: LNPropertyListNodeChangeType, previousKey: String?) {
	switch changeType {
	case .insert:
		print("🎉")
	case .move:
		print("➡️")
	case .update:
		print("🔄")
	case .delete:
		print("🗑")
  @unknown default:
		fatalError()
	}
}

For full documentation, see the LNPropertyListEditor.h header.

Data Transformer

Implement the LNPropertyListEditorDataTransformer protocol to provide display and data transformations for your property list objects.

plistEditor.dataTransformer = self
//...
func propertyListEditor(_ editor: LNPropertyListEditor, displayNameFor node: LNPropertyListNode) -> String? {
	// ...
	if let key = node.key,
	   key == "CFBundleShortVersionString" {
		return "Bundle version string (short)"
	}
	//...
}

For full documentation, see the LNPropertyListEditor.h header.

Acknowledgements

The framework uses:

  • HexFiend © ridiculous_fish, 2011-2020
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].