You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+11-5
Original file line number
Diff line number
Diff line change
@@ -12,12 +12,14 @@ macOS | iOS
12
12
13
13
## Features
14
14
15
-
* Convenient editing of structured data in your app
15
+
* Convenient editing (and viewing) of fielded data in your app
16
16
* Can be used with various collection container types, such as `List`, `Table`, `LazyVStack`, etc.\*
17
17
* Presently targeting macOS v11+ and iOS v14+\*\*
18
-
* Optional support for operations to Add New records and Delete them
19
-
* Optional support for both field-level validation and record-level validation
20
-
* No View type erasure (i.e., use of `AnyView`), which can impact scalability and performance
18
+
* Both bound (`editDetailer`) and unbound (`viewDetailer`) views available
19
+
* Optional support for operations to add new records and delete them
20
+
* Optional support for field-level validation, with indicators
21
+
* Optional support for record-level validation, with alert view
22
+
* Minimal use of View type erasure (i.e., use of `AnyView`)
21
23
* No external dependencies!
22
24
23
25
\* And also the `Tabler` table component (by the same author; see link below)
@@ -149,7 +151,9 @@ struct ContentView: View {
149
151
150
152
On macOS, ctrl-click (or right-click) on a row to invoke the context menu. On iOS, swipe the row to invoke the menu.
151
153
152
-
For a full implementation, see the _DetailerDemo_ project (link below). It extends the example with operations to add new records, delete records, and validate input. Among other features, it shows _Detailer_ used with `LazyVGrid` and `Table` containers.
154
+
For a full implementation, see the _DetailerDemo_ project (link below). It extends the example with operations to add new records, delete records, and validate input.
155
+
156
+
It shows _Detailer_ used with `LazyVGrid` and `Table` containers.
153
157
154
158
## Menuing
155
159
@@ -195,6 +199,8 @@ By default, invalid fields will be suffixed with a warning icon, currently an "e
195
199
196
200
All field-level validations must return `true` for the `Save` button to be enabled.
197
201
202
+
TIP: for consistent margin spacing in layout, you can create a validation that always succeeds: `.validate(...) { _ in true }`.
203
+
198
204
### Record-level validation
199
205
200
206
This can be a *heavyweight* form of validation executed when the user presses the `Save` button.
0 commit comments