Skip to content

Instantly share code, notes, and snippets.

View mayoff's full-sized avatar
😷
status messages are fun

Rob Mayoff mayoff

😷
status messages are fun
View GitHub Profile
@mayoff
mayoff / GenericPrepareForSegue.m
Created August 10, 2013 05:52
This is a generic implementation of prepareForSegue:sender: that calls a segue-specific method based on the segue identifier. There's also a similar implementation of shouldPerformSegueWithIdentifier:sender:.
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
NSString *identifier = segue.identifier;
if (identifier.length == 0)
return;
NSString *selectorString = [NSString stringWithFormat:@"prepareFor%@Segue:sender:", identifier];
SEL selector = NSSelectorFromString(selectorString);
if (!selector || ![self respondsToSelector:selector])
return;
void (*method)(id, SEL, id, id) = (void (*)(id, SEL, id, id))[self methodForSelector:selector];
method(self, selector, segue, sender);
@mayoff
mayoff / RobIntrinsicContentSizeHonoringContainerView.h
Created August 10, 2013 19:43
Untested UIView subclass to be used as the custom class of a container view in a storyboard, to make that container view honor the intrinsic content size of its embedded content view.
/**
Use this as the custom class of a container view in a storyboard if you want the container view to honor its embedded view's intrinsic content size.
*/
@interface RobIntrinsicContentSizeHonoringContainerView : UIView
/** Connect this to my width constraint in the storyboard if you want me to use my subview's intrinsic content width. */
@property (nonatomic, strong) IBOutlet NSLayoutConstraint *widthConstraint;
/** Connect this to my height constraint in the storyboard if you want me to use my subview's intrinsic content height. */
@property (nonatomic, strong) IBOutlet NSLayoutConstraint *heightConstraint;
#if os(iOS)
import UIKit
typealias NSLayoutPriority = UILayoutPriority
#elseif os(OSX)
import AppKit
#endif
public extension NSLayoutAttribute {
/** Return a LayoutAnchor representing attribute `self` of `item`. */
@mayoff
mayoff / Main.storyboard
Created January 12, 2016 16:41
Map view inside scroll view with screen edge available for paging
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="9531" systemVersion="15C50" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" initialViewController="BYZ-38-t0r">
<dependencies>
<deployment identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="9529"/>
</dependencies>
<scenes>
<!--View Controller-->
<scene sceneID="tne-QT-ifu">
<objects>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="9531" systemVersion="15C50" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" initialViewController="vXZ-lx-hvc">
<dependencies>
<deployment identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="9529"/>
<capability name="Constraints with non-1.0 multipliers" minToolsVersion="5.1"/>
</dependencies>
<scenes>
<!--View Controller-->
<scene sceneID="ufC-wZ-h7g">
@mayoff
mayoff / kvoperf.m
Created February 23, 2016 23:13
KVO 100x slowdown in El Capitan
#import <Foundation/Foundation.h>
@interface Subject: NSObject
@property double a;
@property long b;
@property NSObject* c;
@property NSObject* d;
@property NSObject* e;
@property NSObject* f;
@mayoff
mayoff / ConstraintCollection.swift
Last active April 19, 2016 05:49 — forked from jtbandes/ConstraintCollection.swift
Autolayout constraint literals in Swift (updated for Swift 2.2)
#if os(iOS)
import UIKit
#else
import AppKit
#endif
let view = UIView(frame: CGRectMake(0, 0, 400, 300))
view.backgroundColor = UIColor.redColor()
let button = UIButton(type: .Custom)
@mayoff
mayoff / Main.storyboard
Created May 14, 2016 21:23
disclosable sections like Xcode inspectors
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder3.Cocoa.Storyboard.XIB" version="3.0" toolsVersion="10117" systemVersion="15E65" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" initialViewController="B8D-0N-5wS">
<dependencies>
<deployment identifier="macosx"/>
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="10117"/>
<capability name="stacking Non-gravity area distributions on NSStackView" minToolsVersion="7.0" minSystemVersion="10.11"/>
</dependencies>
<scenes>
<!--Application-->
<scene sceneID="JPo-4y-FX3">
@mayoff
mayoff / NSDateComponents+DictionaryLiteral.swift
Created June 3, 2016 16:27
Attempting to make NSDateComponents conform to DictionaryLiteralConvertible
import Cocoa
public extension NSDateComponents {
public convenience init(_ components: DictionaryLiteral<NSCalendarUnit, Int>) {
self.init()
for (key, value) in components {
setValue(value, forComponent: key)
}
}
}
@mayoff
mayoff / Issue.md
Last active August 13, 2016 16:19 — forked from orta/Issue.md
Disclosable Sections in a GH issue
Summary text. Hello World, how is it going?
Another thing. More revealed content.