How to get the width of an NSString?

Here’s a relatively simple approach. Just create an NSAttributedString with the appropriate font and ask for its size: – (CGFloat)widthOfString:(NSString *)string withFont:(NSFont *)font { NSDictionary *attributes = [NSDictionary dictionaryWithObjectsAndKeys:font, NSFontAttributeName, nil]; return [[[NSAttributedString alloc] initWithString:string attributes:attributes] size].width; }

Give warning when [super method] is not called

Recent versions of llvm have added an attribute that indicates that subclasses must call super: @interface Barn:NSObject – (void)openDoor NS_REQUIRES_SUPER; @end @implementation Barn – (void) openDoor { ; } @end @interface HorseBarn:Barn @end @implementation HorseBarn – (void) openDoor { ; } @end Compiling the above produces the warning: Method possibly missing a [super openDoor] call

UIScrollview with UIButtons – how to recreate springboard?

Solution that worked for me included: Setting canCancelContentTouches in UIScrollView to YES. Extending UIScrollView to override touchesShouldCancelInContentView:(UIView *)view to return YES when view is a UIButton. According to documentation touchesShouldCancelInContentView returns “YES to cancel further touch messages to view, NO to have view continue to receive those messages. The default returned value is YES if … Read more

How does Apple update the Airport menu while it is open? (How to change NSMenu when it is already open)

Menu mouse tracking is done in a special run loop mode (NSEventTrackingRunLoopMode). In order to modify the menu, you need to dispatch a message so that it will be processed in the event tracking mode. The easiest way to do this is to use this method of NSRunLoop: [[NSRunLoop currentRunLoop] performSelector:@selector(updateTheMenu:) target:self argument:yourMenu order:0 modes:[NSArray … Read more

What is Protocol Oriented Programming in Swift? What added value does it bring?

Preface: POP and OOP are not mutually exclusive. They’re design paradigms that are greatly related. The primary aspect of POP over OOP is that is prefers composition over inheritance. There are several benefits to this. In large inheritance hierarchies, the ancestor classes tend to contain most of the (generalized) functionality, with the leaf subclasses making … Read more

Restore pre-iOS7 UINavigationController pushViewController animation

I managed to workaround the new transition type by creating a category for UINavigationController. In my case I needed to revert it to the old transition style because I have transparent viewControllers that slide over a static background. UINavigationController+Retro.h @interface UINavigationController (Retro) – (void)pushViewControllerRetro:(UIViewController *)viewController; – (void)popViewControllerRetro; @end UINavigationController+Retro.m #import “UINavigationController+Retro.h” @implementation UINavigationController (Retro) – … Read more

tech