This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import Foundation | |
import Combine | |
/// Run a block in the background with a delay and make it cancellable. | |
/// - Parameters: | |
/// - delay: Delay in milliseconds before the background work starts | |
/// - queue: Background queue to use | |
/// - worker: Worker block to execute on queue | |
/// - completion: Completion handler executed on main thread. | |
/// - Returns: AnyCancellable token |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import Foundation | |
import SwiftUI | |
@available(iOS 13.0, *) | |
extension View { | |
/// Wraps view into an AnyView | |
func eraseToAnyView() -> AnyView { | |
AnyView(self) | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// | |
// ContentView.swift | |
// Shared | |
// | |
// Created by Peter Steinberger on 20.02.21. | |
// | |
import SwiftUI | |
struct SettingsGroup<Content: View>: View { |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
//: A Cocoa based Playground to present user interface | |
import SwiftUI | |
import PlaygroundSupport | |
struct ContentView: View { | |
var body: some View { | |
HStack { | |
VStack { | |
HStack { |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// | |
// KeyCommand.swift | |
// Adds Keyboard Shortcuts to SwiftUI on iOS 13 | |
// See https://steipete.com/posts/fixing-keyboardshortcut-in-swiftui/ | |
// License: MIT | |
// | |
// Usage: (wrap view in `KeyboardEnabledHostingController`) | |
// Button(action: { | |
// print("Button Tapped!!") | |
// }) { |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/// Perform an immediate mutation of `subject`. The `transform` function may | |
/// just mutate the given `subject` or replace it entirely. | |
/// | |
/// - Parameters: | |
/// - subject: A value to be transformed. | |
/// - transform: A closure that mutates or replaces the `subject`. | |
@inlinable func with<T>(_ subject: T, _ transform: (_ subject: inout T) throws -> Void) rethrows -> T { | |
var subject = subject | |
try transform(&subject) | |
return subject |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Helper to hold the parent VC weakly | |
class WeakViewControllerHolder: ObservableObject { | |
weak var vc: UIViewController? | |
init(_ vc: UIViewController) { | |
self.vc = vc | |
} | |
} | |
@available(iOS 13.0, *) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Process: SafariBookmarksSyncAgent [62985] | |
Path: /Library/Developer/CoreSimulator/Profiles/Runtimes/iOS 13.7.simruntime/Contents/Resources/RuntimeRoot/System/Library/CoreServices/SafariSupport.bundle/SafariBookmarksSyncAgent | |
Identifier: SafariBookmarksSyncAgent | |
Version: 609 (609.3.5.0.2) | |
Code Type: X86-64 (Translated) | |
Parent Process: launchd_sim [46734] | |
Responsible: SimulatorTrampoline [823] | |
User ID: 501 | |
Date/Time: 2020-11-29 13:42:02.003 +0100 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
@objc(PSTArchitecture) class Architecture: NSObject { | |
/// Check if process runs under Rosetta 2. | |
/// | |
/// Use to disable tests that use WebKit when running on Apple Silicon | |
/// FB8920323: Crash in WebKit memory allocator on Apple Silicon when iOS below 14 | |
/// Crash is in JavaScriptCore: bmalloc::HeapConstants::HeapConstants(std::__1::lock_guard<bmalloc::Mutex> const&) | |
@objc class var isRosettaEmulated: Bool { | |
// Issue is specific to Simulator, not real devices | |
#if targetEnvironment(simulator) | |
return processIsTranslated() == EMULATED_EXECUTION |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/// Higher-order functions for `NSDictionary`. | |
@interface NSDictionary <KeyType, ObjectType> (PSPDFFoundation) | |
/// Converts the current dictionary into a case insensitive one. | |
@property (nonatomic, readonly) NSDictionary<NSString *, ObjectType> *pst_caseInsensitiveDictionary; | |
@end |