├── .DS_Store ├── QM_pragma.codesnippet ├── QM_strongSelf.codesnippet ├── QM_weakSelf.codesnippet ├── QM_CGRectGetMinX.codesnippet ├── QM_CGRectGetMinY.codesnippet ├── QM_CGRectGetWidth.codesnippet ├── QM_CGRectGetHeight.codesnippet ├── QM_property_copy.codesnippet ├── QM_property_weak.codesnippet ├── QM_property_assign.codesnippet ├── QM_property_strong.codesnippet ├── QM_static_var.codesnippet ├── QM_extern_reference_h.codesnippet ├── QM_function_void.codesnippet ├── QM_extern_value_m.codesnippet ├── QM_extern_reference_m.codesnippet ├── QM_property_weak_readonly.codesnippet ├── QM_static_var_reference.codesnippet ├── QMUI_setFrameX.codesnippet ├── QMUI_setFrameY.codesnippet ├── QM_nslog.codesnippet ├── QM_property_assign_readonly.codesnippet ├── QM_property_strong_readonly.codesnippet ├── QM_setImageForButton.codesnippet ├── QM_viewDidLoad.codesnippet ├── QMUI_barButtonItem_back.codesnippet ├── QMUI_didInitialized.codesnippet ├── QMUI_setFrameXY.codesnippet ├── QM_block_as_property.codesnippet ├── QM_function_void_argument.codesnippet ├── QM_extern_value_h.codesnippet ├── QM_viewDidAppear.codesnippet ├── QM_viewWillAppear.codesnippet ├── QMUI_barButtonItem_title.codesnippet ├── QM_addTarget.codesnippet ├── QM_log.codesnippet ├── QMUI_barButtonItem_image.codesnippet ├── QM_viewDidDisappear.codesnippet ├── QM_viewDidLayoutSubviews.codesnippet ├── QM_loadView.codesnippet ├── QM_viewWillDisappear.codesnippet ├── QMUI_barButtonItem_boldTitle.codesnippet ├── QMUI_load.codesnippet ├── QM_block_typedef.codesnippet ├── QMUI_setFrame.codesnippet ├── QM_logCallStackSymbols.codesnippet ├── QMUI_barButtonItem_close.codesnippet ├── QM_block_var.codesnippet ├── QMUI_initSubviews.codesnippet ├── QM_dispatch_main.codesnippet ├── QM_setTitleForButton.codesnippet ├── QM_block_as_argument.codesnippet ├── QM_deprecated.codesnippet ├── QM_layoutSubviews.codesnippet ├── QM_block_as_argument_in_Function.codesnippet ├── QM_setFrame.codesnippet ├── QM_setTitleColorForButton.codesnippet ├── rac_kvo.codesnippet ├── QM_function_handleEvent.codesnippet ├── QMUI_setupToolbarItems.codesnippet ├── QM_function_handlePan.codesnippet ├── QM_function_handleTap.codesnippet ├── QM_updateConstraints.codesnippet ├── QMUI_didInitializedWithStyle_cell.codesnippet ├── QM_function_return_block.codesnippet ├── QMUI_didInitializedWithStyle.codesnippet ├── QM_ifOSavailable.codesnippet ├── QM_timeConsuming.codesnippet ├── QM_updateViewConstraints.codesnippet ├── QM_dispatch_global.codesnippet ├── QM_function_handleLongPress.codesnippet ├── QM_property_copy_readonly.codesnippet ├── QM_initWithNib.codesnippet ├── QM_numberOfSectionsInTableView.codesnippet ├── QM_didSelectRowAtIndexPath.codesnippet ├── QM_numberOfRowsInSection.codesnippet ├── QMUI_extendVoidReturnNonArgv.codesnippet ├── QM_didSelectItemAtIndexPath.codesnippet ├── QM_heightForRowAtIndexPath.codesnippet ├── QM_didDeselectItemAtIndexPath.codesnippet ├── LICENSE ├── QM_numberOfItemsInSection.codesnippet ├── QM_numberOfSectionsInCollectionView.codesnippet ├── QM_tableView_initWithStyle.codesnippet ├── QMUI_setupNavigationItems.codesnippet ├── QM_tableView_insetNever.codesnippet ├── QMUI_exchangeImplementation.codesnippet ├── QMUI_extendVoidReturnSingleArgv.codesnippet ├── QM_sizeThatFits.codesnippet ├── QM_sizeForItemAtIndexPath.codesnippet ├── QMUI_extendNonVoidReturnNonArgv.codesnippet ├── QM_removeFromParentViewController.codesnippet ├── QMUI_extendVoidReturnTwoArgvs.codesnippet ├── QM_sharedInstance.codesnippet ├── QM_addChildViewController.codesnippet ├── QMUI_extendNonVoidReturnSingleArgv.codesnippet ├── QM_tableViewCell_initWithStyle.codesnippet ├── QM_cellForItemAtIndexPath.codesnippet ├── QM_property_swizzle_weak.codesnippet ├── QM_property_swizzle_copy.codesnippet ├── QM_property_swizzle_strong.codesnippet ├── QMUI_extendNonVoidReturnTwoArgvs.codesnippet ├── QM_property_swizzle_assign.codesnippet ├── rac_combine.codesnippet ├── QM_cellForRowAtIndexPath.codesnippet ├── QMUI_overrideNonVoidReturnNonArgv.codesnippet ├── QMUI_overrideVoidReturnNonArgv.codesnippet ├── QMUI_overrideVoidReturnSingleArgv.codesnippet ├── QMUI_exchangeMultipleImplementations.codesnippet ├── QM_collectionViewDelegate.codesnippet ├── QMUI_property_swizzle_weak.codesnippet ├── QMUI_overrideNonVoidReturnSingleArgv.codesnippet ├── QMUI_overrideVoidReturnTwoArgvs.codesnippet ├── QMUI_overrideNonVoidReturnTwoArgvs.codesnippet ├── QM_tableViewDelegate.codesnippet ├── QM_exchangeImplementation.codesnippet └── README.md /.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/QMUI/QMUI_iOS_CodeSnippets/HEAD/.DS_Store -------------------------------------------------------------------------------- /QM_pragma.codesnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDECodeSnippetCompletionPrefix 6 | pragma 7 | IDECodeSnippetCompletionScopes 8 | 9 | All 10 | 11 | IDECodeSnippetContents 12 | #pragma mark - <#Section#> 13 | IDECodeSnippetIdentifier 14 | 3B9FA813-1CC1-4973-A55D-FAC087F2F75D 15 | IDECodeSnippetLanguage 16 | Xcode.SourceCodeLanguage.Objective-C 17 | IDECodeSnippetTitle 18 | Pragma Mark 19 | IDECodeSnippetUserSnippet 20 | 21 | IDECodeSnippetVersion 22 | 2 23 | 24 | 25 | -------------------------------------------------------------------------------- /QM_strongSelf.codesnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDECodeSnippetCompletionPrefix 6 | __strongSelf 7 | IDECodeSnippetCompletionScopes 8 | 9 | CodeBlock 10 | 11 | IDECodeSnippetContents 12 | __strong __typeof(weakSelf)strongSelf = weakSelf; 13 | IDECodeSnippetIdentifier 14 | strongSelf 15 | IDECodeSnippetLanguage 16 | Xcode.SourceCodeLanguage.Objective-C 17 | IDECodeSnippetTitle 18 | strongSelf 19 | IDECodeSnippetUserSnippet 20 | 21 | IDECodeSnippetVersion 22 | 2 23 | 24 | 25 | -------------------------------------------------------------------------------- /QM_weakSelf.codesnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDECodeSnippetCompletionPrefix 6 | __weakSelf 7 | IDECodeSnippetCompletionScopes 8 | 9 | CodeBlock 10 | 11 | IDECodeSnippetContents 12 | __weak __typeof(self)weakSelf = self; 13 | IDECodeSnippetIdentifier 14 | 1AD3496A-7B93-4B60-9C5D-E54FC734E544 15 | IDECodeSnippetLanguage 16 | Xcode.SourceCodeLanguage.Objective-C 17 | IDECodeSnippetTitle 18 | weakSelf 19 | IDECodeSnippetUserSnippet 20 | 21 | IDECodeSnippetVersion 22 | 2 23 | 24 | 25 | -------------------------------------------------------------------------------- /QM_CGRectGetMinX.codesnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDECodeSnippetCompletionPrefix 6 | getMinX 7 | IDECodeSnippetCompletionScopes 8 | 9 | CodeBlock 10 | 11 | IDECodeSnippetContents 12 | CGRectGetMinX(<#CGRect rect#>) 13 | IDECodeSnippetIdentifier 14 | 1CDEB4B5-75D6-4F04-B8E6-BCEA1A54FE18 15 | IDECodeSnippetLanguage 16 | Xcode.SourceCodeLanguage.Objective-C 17 | IDECodeSnippetTitle 18 | CGRectGetMinX 19 | IDECodeSnippetUserSnippet 20 | 21 | IDECodeSnippetVersion 22 | 2 23 | 24 | 25 | -------------------------------------------------------------------------------- /QM_CGRectGetMinY.codesnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDECodeSnippetCompletionPrefix 6 | getMinY 7 | IDECodeSnippetCompletionScopes 8 | 9 | CodeBlock 10 | 11 | IDECodeSnippetContents 12 | CGRectGetMinY(<#CGRect rect#>) 13 | IDECodeSnippetIdentifier 14 | 6B079320-8812-48E4-ABE9-6303E529ADCA 15 | IDECodeSnippetLanguage 16 | Xcode.SourceCodeLanguage.Objective-C 17 | IDECodeSnippetTitle 18 | CGRectGetMinY 19 | IDECodeSnippetUserSnippet 20 | 21 | IDECodeSnippetVersion 22 | 2 23 | 24 | 25 | -------------------------------------------------------------------------------- /QM_CGRectGetWidth.codesnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDECodeSnippetCompletionPrefix 6 | getWidth 7 | IDECodeSnippetCompletionScopes 8 | 9 | CodeBlock 10 | 11 | IDECodeSnippetContents 12 | CGRectGetWidth(<#CGRect rect#>) 13 | IDECodeSnippetIdentifier 14 | 85AFEEE5-547B-4995-8E1D-03EF58452DE2 15 | IDECodeSnippetLanguage 16 | Xcode.SourceCodeLanguage.Objective-C 17 | IDECodeSnippetTitle 18 | CGRectGetWidth 19 | IDECodeSnippetUserSnippet 20 | 21 | IDECodeSnippetVersion 22 | 2 23 | 24 | 25 | -------------------------------------------------------------------------------- /QM_CGRectGetHeight.codesnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDECodeSnippetCompletionPrefix 6 | getHeight 7 | IDECodeSnippetCompletionScopes 8 | 9 | CodeBlock 10 | 11 | IDECodeSnippetContents 12 | CGRectGetHeight(<#CGRect rect#>) 13 | IDECodeSnippetIdentifier 14 | A4384427-2E28-4CBD-93EB-B9C7DE21404D 15 | IDECodeSnippetLanguage 16 | Xcode.SourceCodeLanguage.Objective-C 17 | IDECodeSnippetTitle 18 | CGRectGetHeight 19 | IDECodeSnippetUserSnippet 20 | 21 | IDECodeSnippetVersion 22 | 2 23 | 24 | 25 | -------------------------------------------------------------------------------- /QM_property_copy.codesnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDECodeSnippetCompletionPrefix 6 | pc 7 | IDECodeSnippetCompletionScopes 8 | 9 | All 10 | 11 | IDECodeSnippetContents 12 | @property(nonatomic, copy) <#type#> *<#name#>; 13 | IDECodeSnippetIdentifier 14 | 8B1C05A2-7F9D-4877-9A2A-69BC4CD1E990 15 | IDECodeSnippetLanguage 16 | Xcode.SourceCodeLanguage.Objective-C 17 | IDECodeSnippetTitle 18 | Property For Copy 19 | IDECodeSnippetUserSnippet 20 | 21 | IDECodeSnippetVersion 22 | 2 23 | 24 | 25 | -------------------------------------------------------------------------------- /QM_property_weak.codesnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDECodeSnippetCompletionPrefix 6 | pw 7 | IDECodeSnippetCompletionScopes 8 | 9 | All 10 | 11 | IDECodeSnippetContents 12 | @property(nonatomic, weak) <#type#> *<#name#>; 13 | IDECodeSnippetIdentifier 14 | 6CD5E87E-5EB3-4F2E-9C87-81F5BA9EA5FC 15 | IDECodeSnippetLanguage 16 | Xcode.SourceCodeLanguage.Objective-C 17 | IDECodeSnippetTitle 18 | Property For Weak 19 | IDECodeSnippetUserSnippet 20 | 21 | IDECodeSnippetVersion 22 | 2 23 | 24 | 25 | -------------------------------------------------------------------------------- /QM_property_assign.codesnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDECodeSnippetCompletionPrefix 6 | pa 7 | IDECodeSnippetCompletionScopes 8 | 9 | All 10 | 11 | IDECodeSnippetContents 12 | @property(nonatomic, assign) <#type#> <#name#>; 13 | IDECodeSnippetIdentifier 14 | 9F96E543-5450-452B-9CA8-8BCCD8D841ED 15 | IDECodeSnippetLanguage 16 | Xcode.SourceCodeLanguage.Objective-C 17 | IDECodeSnippetTitle 18 | Property For Assign 19 | IDECodeSnippetUserSnippet 20 | 21 | IDECodeSnippetVersion 22 | 2 23 | 24 | 25 | -------------------------------------------------------------------------------- /QM_property_strong.codesnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDECodeSnippetCompletionPrefix 6 | ps 7 | IDECodeSnippetCompletionScopes 8 | 9 | All 10 | 11 | IDECodeSnippetContents 12 | @property(nonatomic, strong) <#type#> *<#name#>; 13 | IDECodeSnippetIdentifier 14 | C6CF2F16-53B9-4033-B217-89868A294BE8 15 | IDECodeSnippetLanguage 16 | Xcode.SourceCodeLanguage.Objective-C 17 | IDECodeSnippetTitle 18 | Property For Strong 19 | IDECodeSnippetUserSnippet 20 | 21 | IDECodeSnippetVersion 22 | 2 23 | 24 | 25 | -------------------------------------------------------------------------------- /QM_static_var.codesnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDECodeSnippetCompletionPrefix 6 | static 7 | IDECodeSnippetCompletionScopes 8 | 9 | TopLevel 10 | 11 | IDECodeSnippetContents 12 | static <#type#> const k<#Name#> = <#value#>; 13 | IDECodeSnippetIdentifier 14 | 95ACDF4B-E74F-4A04-9774-8644C48E20DC 15 | IDECodeSnippetLanguage 16 | Xcode.SourceCodeLanguage.Objective-C 17 | IDECodeSnippetTitle 18 | static const value 19 | IDECodeSnippetUserSnippet 20 | 21 | IDECodeSnippetVersion 22 | 2 23 | 24 | 25 | -------------------------------------------------------------------------------- /QM_extern_reference_h.codesnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDECodeSnippetCompletionPrefix 6 | externRefInH 7 | IDECodeSnippetCompletionScopes 8 | 9 | TopLevel 10 | 11 | IDECodeSnippetContents 12 | extern <#type#> *const <#name#>; 13 | IDECodeSnippetIdentifier 14 | 21FDCAF1-C5B5-4F0C-A9EE-895654127294 15 | IDECodeSnippetLanguage 16 | Xcode.SourceCodeLanguage.Objective-C 17 | IDECodeSnippetTitle 18 | extern Reference in *.h file 19 | IDECodeSnippetUserSnippet 20 | 21 | IDECodeSnippetVersion 22 | 2 23 | 24 | 25 | -------------------------------------------------------------------------------- /QM_function_void.codesnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDECodeSnippetCompletionPrefix 6 | fnv 7 | IDECodeSnippetCompletionScopes 8 | 9 | ClassImplementation 10 | 11 | IDECodeSnippetContents 12 | - (void)<#method name#> { 13 | <#code#> 14 | } 15 | IDECodeSnippetIdentifier 16 | 6B47EC5A-B22B-4155-8C3F-632CCDFC4502 17 | IDECodeSnippetLanguage 18 | Xcode.SourceCodeLanguage.Objective-C 19 | IDECodeSnippetTitle 20 | 创建一个返回值为空的方法 21 | IDECodeSnippetUserSnippet 22 | 23 | IDECodeSnippetVersion 24 | 2 25 | 26 | 27 | -------------------------------------------------------------------------------- /QM_extern_value_m.codesnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDECodeSnippetCompletionPrefix 6 | externValueInM 7 | IDECodeSnippetCompletionScopes 8 | 9 | TopLevel 10 | 11 | IDECodeSnippetContents 12 | const <#type#> <#name#> = <#value#>; 13 | IDECodeSnippetIdentifier 14 | 1063BE8C-95DF-44E4-B09A-60EAC0047FCC 15 | IDECodeSnippetLanguage 16 | Xcode.SourceCodeLanguage.Objective-C 17 | IDECodeSnippetTitle 18 | extern Value in *.m file 19 | IDECodeSnippetUserSnippet 20 | 21 | IDECodeSnippetVersion 22 | 2 23 | 24 | 25 | -------------------------------------------------------------------------------- /QM_extern_reference_m.codesnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDECodeSnippetCompletionPrefix 6 | externRefInM 7 | IDECodeSnippetCompletionScopes 8 | 9 | TopLevel 10 | 11 | IDECodeSnippetContents 12 | <#type#> *const <#name#> = <#value#>; 13 | IDECodeSnippetIdentifier 14 | 05ACBB91-A78D-402C-807A-47886AD29A07 15 | IDECodeSnippetLanguage 16 | Xcode.SourceCodeLanguage.Objective-C 17 | IDECodeSnippetTitle 18 | extern Reference in *.m file 19 | IDECodeSnippetUserSnippet 20 | 21 | IDECodeSnippetVersion 22 | 2 23 | 24 | 25 | -------------------------------------------------------------------------------- /QM_property_weak_readonly.codesnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDECodeSnippetCompletionPrefix 6 | pwr 7 | IDECodeSnippetCompletionScopes 8 | 9 | All 10 | 11 | IDECodeSnippetContents 12 | @property(nonatomic, weak, readonly) <#type#> *<#name#>; 13 | IDECodeSnippetIdentifier 14 | 3BDAAACA-931A-43D6-B7B4-A446285E098B 15 | IDECodeSnippetLanguage 16 | Xcode.SourceCodeLanguage.Objective-C 17 | IDECodeSnippetTitle 18 | Property For Weak And Readonly 19 | IDECodeSnippetUserSnippet 20 | 21 | IDECodeSnippetVersion 22 | 2 23 | 24 | 25 | -------------------------------------------------------------------------------- /QM_static_var_reference.codesnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDECodeSnippetCompletionPrefix 6 | static reference 7 | IDECodeSnippetCompletionScopes 8 | 9 | TopLevel 10 | 11 | IDECodeSnippetContents 12 | static <#type#> * const k<#name#> = <#value#>; 13 | IDECodeSnippetIdentifier 14 | 9365F43F-CDAB-444A-A5CD-D5E5CEAD614B 15 | IDECodeSnippetLanguage 16 | Xcode.SourceCodeLanguage.Objective-C 17 | IDECodeSnippetTitle 18 | static const reference 19 | IDECodeSnippetUserSnippet 20 | 21 | IDECodeSnippetVersion 22 | 2 23 | 24 | 25 | -------------------------------------------------------------------------------- /QMUI_setFrameX.codesnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDECodeSnippetCompletionPrefix 6 | setFrameX 7 | IDECodeSnippetCompletionScopes 8 | 9 | All 10 | 11 | IDECodeSnippetContents 12 | <#view#>.frame = CGRectSetX(<#view#>.frame, <#x#>); 13 | IDECodeSnippetIdentifier 14 | 5BEF295B-A1FA-4AEB-8148-C9E14BD56B43 15 | IDECodeSnippetLanguage 16 | Xcode.SourceCodeLanguage.Objective-C 17 | IDECodeSnippetTitle 18 | set UIView frame X with QMUI CGRectSetX 19 | IDECodeSnippetUserSnippet 20 | 21 | IDECodeSnippetVersion 22 | 2 23 | 24 | 25 | -------------------------------------------------------------------------------- /QMUI_setFrameY.codesnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDECodeSnippetCompletionPrefix 6 | setFrameY 7 | IDECodeSnippetCompletionScopes 8 | 9 | All 10 | 11 | IDECodeSnippetContents 12 | <#view#>.frame = CGRectSetY(<#view#>.frame, <#y#>); 13 | IDECodeSnippetIdentifier 14 | B5531524-A9B1-4FC3-AB9C-81C93EA6F201 15 | IDECodeSnippetLanguage 16 | Xcode.SourceCodeLanguage.Objective-C 17 | IDECodeSnippetTitle 18 | set UIView frame Y with QMUI CGRectSetY 19 | IDECodeSnippetUserSnippet 20 | 21 | IDECodeSnippetVersion 22 | 2 23 | 24 | 25 | -------------------------------------------------------------------------------- /QM_nslog.codesnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDECodeSnippetCompletionPrefix 6 | log 7 | IDECodeSnippetCompletionScopes 8 | 9 | All 10 | CodeBlock 11 | 12 | IDECodeSnippetContents 13 | NSLog(@"<##>"); 14 | IDECodeSnippetIdentifier 15 | 357607DE-337B-4943-8F27-9CA1EE722BF7 16 | IDECodeSnippetLanguage 17 | Xcode.SourceCodeLanguage.Objective-C 18 | IDECodeSnippetSummary 19 | 20 | IDECodeSnippetTitle 21 | NSLog 22 | IDECodeSnippetUserSnippet 23 | 24 | IDECodeSnippetVersion 25 | 2 26 | 27 | 28 | -------------------------------------------------------------------------------- /QM_property_assign_readonly.codesnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDECodeSnippetCompletionPrefix 6 | par 7 | IDECodeSnippetCompletionScopes 8 | 9 | All 10 | 11 | IDECodeSnippetContents 12 | @property(nonatomic, assign, readonly) <#type#> <#name#>; 13 | IDECodeSnippetIdentifier 14 | 32E2254E-F2F6-419B-B581-B6885C95A62B 15 | IDECodeSnippetLanguage 16 | Xcode.SourceCodeLanguage.Objective-C 17 | IDECodeSnippetTitle 18 | Property For Assign And Readonly 19 | IDECodeSnippetUserSnippet 20 | 21 | IDECodeSnippetVersion 22 | 2 23 | 24 | 25 | -------------------------------------------------------------------------------- /QM_property_strong_readonly.codesnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDECodeSnippetCompletionPrefix 6 | psr 7 | IDECodeSnippetCompletionScopes 8 | 9 | All 10 | 11 | IDECodeSnippetContents 12 | @property(nonatomic, strong, readonly) <#type#> *<#name#>; 13 | IDECodeSnippetIdentifier 14 | 7673BB72-6355-4D45-B6D7-E36B4A79C835 15 | IDECodeSnippetLanguage 16 | Xcode.SourceCodeLanguage.Objective-C 17 | IDECodeSnippetTitle 18 | Property For Strong And Readonly 19 | IDECodeSnippetUserSnippet 20 | 21 | IDECodeSnippetVersion 22 | 2 23 | 24 | 25 | -------------------------------------------------------------------------------- /QM_setImageForButton.codesnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDECodeSnippetCompletionPrefix 6 | setImageForButton 7 | IDECodeSnippetCompletionScopes 8 | 9 | CodeBlock 10 | 11 | IDECodeSnippetContents 12 | [<#button#> setImage:<#image#> forState:UIControlStateNormal]; 13 | IDECodeSnippetIdentifier 14 | EC69F79A-C822-4381-ACE7-82BA4ED97D27 15 | IDECodeSnippetLanguage 16 | Xcode.SourceCodeLanguage.Objective-C 17 | IDECodeSnippetTitle 18 | set UIButton Image 19 | IDECodeSnippetUserSnippet 20 | 21 | IDECodeSnippetVersion 22 | 2 23 | 24 | 25 | -------------------------------------------------------------------------------- /QM_viewDidLoad.codesnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDECodeSnippetCompletionPrefix 6 | viewDidLoad 7 | IDECodeSnippetCompletionScopes 8 | 9 | ClassImplementation 10 | 11 | IDECodeSnippetContents 12 | - (void)viewDidLoad { 13 | [super viewDidLoad]; 14 | <#code#> 15 | } 16 | IDECodeSnippetIdentifier 17 | 2C6B159A-D934-44B7-B110-1BF1D4B89707 18 | IDECodeSnippetLanguage 19 | Xcode.SourceCodeLanguage.Objective-C 20 | IDECodeSnippetTitle 21 | viewDidLoad 22 | IDECodeSnippetUserSnippet 23 | 24 | IDECodeSnippetVersion 25 | 2 26 | 27 | 28 | -------------------------------------------------------------------------------- /QMUI_barButtonItem_back.codesnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDECodeSnippetCompletionPrefix 6 | backItem 7 | IDECodeSnippetCompletionScopes 8 | 9 | All 10 | 11 | IDECodeSnippetContents 12 | [UIBarButtonItem qmui_backItemWithTarget:self action:@selector(<#selector name#>)]; 13 | IDECodeSnippetIdentifier 14 | 47B97B84-8A9F-4862-B658-AC7849E83C75 15 | IDECodeSnippetLanguage 16 | Xcode.SourceCodeLanguage.Objective-C 17 | IDECodeSnippetTitle 18 | Back UIBarButtonItem 19 | IDECodeSnippetUserSnippet 20 | 21 | IDECodeSnippetVersion 22 | 2 23 | 24 | 25 | -------------------------------------------------------------------------------- /QMUI_didInitialized.codesnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDECodeSnippetCompletionPrefix 6 | didInitialize 7 | IDECodeSnippetCompletionScopes 8 | 9 | ClassImplementation 10 | 11 | IDECodeSnippetContents 12 | - (void)didInitialize { 13 | [super didInitialize]; 14 | <##> 15 | } 16 | IDECodeSnippetIdentifier 17 | 34DD9E8F-5AF0-4CD0-9A6C-B3E4C7CCBD7F 18 | IDECodeSnippetLanguage 19 | Xcode.SourceCodeLanguage.Objective-C 20 | IDECodeSnippetTitle 21 | didInitialize 22 | IDECodeSnippetUserSnippet 23 | 24 | IDECodeSnippetVersion 25 | 2 26 | 27 | 28 | -------------------------------------------------------------------------------- /QMUI_setFrameXY.codesnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDECodeSnippetCompletionPrefix 6 | setFrameXY 7 | IDECodeSnippetCompletionScopes 8 | 9 | All 10 | 11 | IDECodeSnippetContents 12 | <#view#>.frame = CGRectSetXY(<#view#>.frame, <#x#>, <#y#>); 13 | IDECodeSnippetIdentifier 14 | 29616EC2-81E1-4AF5-8AD9-96DEED51B264 15 | IDECodeSnippetLanguage 16 | Xcode.SourceCodeLanguage.Objective-C 17 | IDECodeSnippetTitle 18 | set UIView frame XY with QMUI CGRectSetXY 19 | IDECodeSnippetUserSnippet 20 | 21 | IDECodeSnippetVersion 22 | 2 23 | 24 | 25 | -------------------------------------------------------------------------------- /QM_block_as_property.codesnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDECodeSnippetCompletionPrefix 6 | blockproperty 7 | IDECodeSnippetCompletionScopes 8 | 9 | All 10 | 11 | IDECodeSnippetContents 12 | @property(nonatomic, copy) <#returnType#> (^<#blockName#>)(<#parameterTypes#>); 13 | IDECodeSnippetIdentifier 14 | B84470B1-B180-401B-8C53-43390D9124DA 15 | IDECodeSnippetLanguage 16 | Xcode.SourceCodeLanguage.Objective-C 17 | IDECodeSnippetTitle 18 | Property For Block 19 | IDECodeSnippetUserSnippet 20 | 21 | IDECodeSnippetVersion 22 | 2 23 | 24 | 25 | -------------------------------------------------------------------------------- /QM_function_void_argument.codesnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDECodeSnippetCompletionPrefix 6 | fnv: 7 | IDECodeSnippetCompletionScopes 8 | 9 | ClassImplementation 10 | 11 | IDECodeSnippetContents 12 | - (void)<#method name#>:(<#argv type#>)<#argv#> { 13 | <#code#> 14 | } 15 | IDECodeSnippetIdentifier 16 | 36A99A40-AF77-4CCA-8FF3-E1587F48F239 17 | IDECodeSnippetLanguage 18 | Xcode.SourceCodeLanguage.Objective-C 19 | IDECodeSnippetTitle 20 | 创建一个返回值为空并且带参数的方法 21 | IDECodeSnippetUserSnippet 22 | 23 | IDECodeSnippetVersion 24 | 2 25 | 26 | 27 | -------------------------------------------------------------------------------- /QM_extern_value_h.codesnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDECodeSnippetCompletionPrefix 6 | externValueInH 7 | IDECodeSnippetCompletionScopes 8 | 9 | TopLevel 10 | 11 | IDECodeSnippetContents 12 | extern const <#type#> <#name#>; 13 | IDECodeSnippetIdentifier 14 | 3F020BCC-5E6C-4538-A470-1E124BB4DBAE 15 | IDECodeSnippetLanguage 16 | Xcode.SourceCodeLanguage.Objective-C 17 | IDECodeSnippetSummary 18 | 19 | IDECodeSnippetTitle 20 | extern Value in *.h file 21 | IDECodeSnippetUserSnippet 22 | 23 | IDECodeSnippetVersion 24 | 2 25 | 26 | 27 | -------------------------------------------------------------------------------- /QM_viewDidAppear.codesnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDECodeSnippetCompletionPrefix 6 | viewDidAppear 7 | IDECodeSnippetCompletionScopes 8 | 9 | ClassImplementation 10 | 11 | IDECodeSnippetContents 12 | - (void)viewDidAppear:(BOOL)animated { 13 | [super viewDidAppear:animated]; 14 | <#code#> 15 | } 16 | IDECodeSnippetIdentifier 17 | A9456DBA-B19F-41E2-B5E5-9928DAF8CCFE 18 | IDECodeSnippetLanguage 19 | Xcode.SourceCodeLanguage.Objective-C 20 | IDECodeSnippetTitle 21 | viewDidAppear: 22 | IDECodeSnippetUserSnippet 23 | 24 | IDECodeSnippetVersion 25 | 2 26 | 27 | 28 | -------------------------------------------------------------------------------- /QM_viewWillAppear.codesnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDECodeSnippetCompletionPrefix 6 | viewWillAppear 7 | IDECodeSnippetCompletionScopes 8 | 9 | ClassImplementation 10 | 11 | IDECodeSnippetContents 12 | - (void)viewWillAppear:(BOOL)animated { 13 | [super viewWillAppear:animated]; 14 | <#code#> 15 | } 16 | IDECodeSnippetIdentifier 17 | F9DAF84E-4DCA-4AEB-B90D-16B40624932B 18 | IDECodeSnippetLanguage 19 | Xcode.SourceCodeLanguage.Objective-C 20 | IDECodeSnippetTitle 21 | viewWillAppear: 22 | IDECodeSnippetUserSnippet 23 | 24 | IDECodeSnippetVersion 25 | 2 26 | 27 | 28 | -------------------------------------------------------------------------------- /QMUI_barButtonItem_title.codesnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDECodeSnippetCompletionPrefix 6 | titleItem 7 | IDECodeSnippetCompletionScopes 8 | 9 | All 10 | 11 | IDECodeSnippetContents 12 | [UIBarButtonItem qmui_itemWithTitle:<#(nullable NSString *)#> target:self action:@selector(<#selector name#>)]; 13 | IDECodeSnippetIdentifier 14 | 43063D01-168F-43E2-B0D4-10A07FA19445 15 | IDECodeSnippetLanguage 16 | Xcode.SourceCodeLanguage.Objective-C 17 | IDECodeSnippetTitle 18 | Title UIBarButtonItem 19 | IDECodeSnippetUserSnippet 20 | 21 | IDECodeSnippetVersion 22 | 2 23 | 24 | 25 | -------------------------------------------------------------------------------- /QM_addTarget.codesnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDECodeSnippetCompletionPrefix 6 | addtarget 7 | IDECodeSnippetCompletionScopes 8 | 9 | CodeBlock 10 | 11 | IDECodeSnippetContents 12 | [<#control#> addTarget:self action:@selector(handle<#controlName#>Event:) forControlEvents:UIControlEventTouchUpInside]; 13 | IDECodeSnippetIdentifier 14 | 799325FD-C68C-4BD4-AFE5-F398D97107F6 15 | IDECodeSnippetLanguage 16 | Xcode.SourceCodeLanguage.Objective-C 17 | IDECodeSnippetTitle 18 | UIControl Add Target 19 | IDECodeSnippetUserSnippet 20 | 21 | IDECodeSnippetVersion 22 | 2 23 | 24 | 25 | -------------------------------------------------------------------------------- /QM_log.codesnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDECodeSnippetCompletionPrefix 6 | log 7 | IDECodeSnippetCompletionScopes 8 | 9 | All 10 | 11 | IDECodeSnippetContents 12 | NSLog(@"<##>"); 13 | IDECodeSnippetIdentifier 14 | 5DD6260F-35C7-46BA-A7FD-B0FD4B55BCE2 15 | IDECodeSnippetLanguage 16 | Xcode.SourceCodeLanguage.Objective-C 17 | IDECodeSnippetPlatformFamily 18 | iphoneos 19 | IDECodeSnippetSummary 20 | 21 | IDECodeSnippetTitle 22 | NSLog 23 | IDECodeSnippetUserSnippet 24 | 25 | IDECodeSnippetVersion 26 | 2 27 | 28 | 29 | -------------------------------------------------------------------------------- /QMUI_barButtonItem_image.codesnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDECodeSnippetCompletionPrefix 6 | imageItem 7 | IDECodeSnippetCompletionScopes 8 | 9 | All 10 | 11 | IDECodeSnippetContents 12 | [UIBarButtonItem qmui_itemWithImage:UIImageMake(@"<#image name#>") target:self action:@selector(<#selector name#>)]; 13 | IDECodeSnippetIdentifier 14 | 3A422B1A-0422-41EC-8CB7-D7B961CDC76D 15 | IDECodeSnippetLanguage 16 | Xcode.SourceCodeLanguage.Objective-C 17 | IDECodeSnippetTitle 18 | Image UIBarButtonItem 19 | IDECodeSnippetUserSnippet 20 | 21 | IDECodeSnippetVersion 22 | 2 23 | 24 | 25 | -------------------------------------------------------------------------------- /QM_viewDidDisappear.codesnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDECodeSnippetCompletionPrefix 6 | viewDidDisappear 7 | IDECodeSnippetCompletionScopes 8 | 9 | ClassImplementation 10 | 11 | IDECodeSnippetContents 12 | - (void)viewDidDisappear:(BOOL)animated { 13 | [super viewDidDisappear:animated]; 14 | <#code#> 15 | } 16 | IDECodeSnippetIdentifier 17 | 7FA93830-68A9-4F6F-B87E-F9304B210C4B 18 | IDECodeSnippetLanguage 19 | Xcode.SourceCodeLanguage.Objective-C 20 | IDECodeSnippetTitle 21 | viewDidDisappear: 22 | IDECodeSnippetUserSnippet 23 | 24 | IDECodeSnippetVersion 25 | 2 26 | 27 | 28 | -------------------------------------------------------------------------------- /QM_viewDidLayoutSubviews.codesnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDECodeSnippetCompletionPrefix 6 | viewDidLayoutSubviews 7 | IDECodeSnippetCompletionScopes 8 | 9 | ClassImplementation 10 | 11 | IDECodeSnippetContents 12 | - (void)viewDidLayoutSubviews { 13 | [super viewDidLayoutSubviews]; 14 | <#code#> 15 | } 16 | IDECodeSnippetIdentifier 17 | 494D85BB-30BB-434A-9383-2B0CAD69B785 18 | IDECodeSnippetLanguage 19 | Xcode.SourceCodeLanguage.Objective-C 20 | IDECodeSnippetTitle 21 | viewDidLayoutSubviews 22 | IDECodeSnippetUserSnippet 23 | 24 | IDECodeSnippetVersion 25 | 2 26 | 27 | 28 | -------------------------------------------------------------------------------- /QM_loadView.codesnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDECodeSnippetCompletionPrefix 6 | loadView 7 | IDECodeSnippetCompletionScopes 8 | 9 | ClassImplementation 10 | 11 | IDECodeSnippetContents 12 | - (void)loadView { 13 | self.view = <#custom view#>; 14 | } 15 | IDECodeSnippetIdentifier 16 | 94A53770-ED4C-4395-AB15-CCA346BF2904 17 | IDECodeSnippetLanguage 18 | Xcode.SourceCodeLanguage.Objective-C 19 | IDECodeSnippetPlatformFamily 20 | iphoneos 21 | IDECodeSnippetTitle 22 | loadView 23 | IDECodeSnippetUserSnippet 24 | 25 | IDECodeSnippetVersion 26 | 2 27 | 28 | 29 | -------------------------------------------------------------------------------- /QM_viewWillDisappear.codesnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDECodeSnippetCompletionPrefix 6 | viewWillDisappear 7 | IDECodeSnippetCompletionScopes 8 | 9 | ClassImplementation 10 | 11 | IDECodeSnippetContents 12 | - (void)viewWillDisappear:(BOOL)animated { 13 | [super viewWillDisappear:animated]; 14 | <#code#> 15 | } 16 | IDECodeSnippetIdentifier 17 | E351FBA5-DDEF-4EC3-970E-8EA7F6CCF579 18 | IDECodeSnippetLanguage 19 | Xcode.SourceCodeLanguage.Objective-C 20 | IDECodeSnippetTitle 21 | viewWillDisappear: 22 | IDECodeSnippetUserSnippet 23 | 24 | IDECodeSnippetVersion 25 | 2 26 | 27 | 28 | -------------------------------------------------------------------------------- /QMUI_barButtonItem_boldTitle.codesnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDECodeSnippetCompletionPrefix 6 | boldTitleItem 7 | IDECodeSnippetCompletionScopes 8 | 9 | All 10 | 11 | IDECodeSnippetContents 12 | [UIBarButtonItem qmui_itemWithBoldTitle:<#(nullable NSString *)#> target:self action:@selector(<#selector name#>)]; 13 | IDECodeSnippetIdentifier 14 | 5A3AB4AB-26DC-4402-BE47-D87BF8D620E0 15 | IDECodeSnippetLanguage 16 | Xcode.SourceCodeLanguage.Objective-C 17 | IDECodeSnippetTitle 18 | Bold Title UIBarButtonItem 19 | IDECodeSnippetUserSnippet 20 | 21 | IDECodeSnippetVersion 22 | 2 23 | 24 | 25 | -------------------------------------------------------------------------------- /QMUI_load.codesnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDECodeSnippetCompletionPrefix 6 | load_once 7 | IDECodeSnippetCompletionScopes 8 | 9 | ClassImplementation 10 | 11 | IDECodeSnippetContents 12 | + (void)load { 13 | static dispatch_once_t onceToken; 14 | dispatch_once(&onceToken, ^{ 15 | <##> 16 | }); 17 | } 18 | IDECodeSnippetIdentifier 19 | 9A2482AB-93D8-457A-8D67-221379784E4A 20 | IDECodeSnippetLanguage 21 | Xcode.SourceCodeLanguage.Objective-C 22 | IDECodeSnippetTitle 23 | load dispatch once 24 | IDECodeSnippetUserSnippet 25 | 26 | IDECodeSnippetVersion 27 | 2 28 | 29 | 30 | -------------------------------------------------------------------------------- /QM_block_typedef.codesnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDECodeSnippetCompletionPrefix 6 | blocktypedef 7 | IDECodeSnippetCompletionScopes 8 | 9 | All 10 | 11 | IDECodeSnippetContents 12 | typedef <#returnType#> (^<#blockName#>)(<#arguments#>); 13 | IDECodeSnippetIdentifier 14 | 80FEABC7-1C63-4C3F-A937-D0E3D8D04100 15 | IDECodeSnippetLanguage 16 | Xcode.SourceCodeLanguage.Objective-C 17 | IDECodeSnippetSummary 18 | block的typedef定义 19 | IDECodeSnippetTitle 20 | typedef block 21 | IDECodeSnippetUserSnippet 22 | 23 | IDECodeSnippetVersion 24 | 2 25 | 26 | 27 | -------------------------------------------------------------------------------- /QMUI_setFrame.codesnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDECodeSnippetCompletionPrefix 6 | setFrame_QMUI 7 | IDECodeSnippetCompletionScopes 8 | 9 | All 10 | 11 | IDECodeSnippetContents 12 | <#view#>.frame = CGRectFlatMake(<#CGFloat x#>, <#CGFloat y#>, <#CGFloat width#>, <#CGFloat height#>); 13 | IDECodeSnippetIdentifier 14 | 0E66F758-D976-483F-A71A-1B94A8ADA34A 15 | IDECodeSnippetLanguage 16 | Xcode.SourceCodeLanguage.Objective-C 17 | IDECodeSnippetTitle 18 | set UIView frame with QMUI CGRectFlatMake 19 | IDECodeSnippetUserSnippet 20 | 21 | IDECodeSnippetVersion 22 | 2 23 | 24 | 25 | -------------------------------------------------------------------------------- /QM_logCallStackSymbols.codesnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDECodeSnippetCompletionPrefix 6 | logCallStackSymbols 7 | IDECodeSnippetCompletionScopes 8 | 9 | CodeBlock 10 | 11 | IDECodeSnippetContents 12 | NSLog(@"Call Stack: %@", [NSThread callStackSymbols]); 13 | IDECodeSnippetIdentifier 14 | 9CDCCD18-A33D-48DF-8363-F028E1465EC2 15 | IDECodeSnippetLanguage 16 | Xcode.SourceCodeLanguage.Objective-C 17 | IDECodeSnippetPlatformFamily 18 | iphoneos 19 | IDECodeSnippetTitle 20 | print stack symbols 21 | IDECodeSnippetUserSnippet 22 | 23 | IDECodeSnippetVersion 24 | 2 25 | 26 | 27 | -------------------------------------------------------------------------------- /QMUI_barButtonItem_close.codesnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDECodeSnippetCompletionPrefix 6 | closeItem 7 | IDECodeSnippetCompletionScopes 8 | 9 | All 10 | 11 | IDECodeSnippetContents 12 | [UIBarButtonItem qmui_closeItemWithTarget:self action:@selector(<#selector name#>)]; 13 | IDECodeSnippetIdentifier 14 | F68179BA-29CA-48D0-8F20-54CE21E05920 15 | IDECodeSnippetLanguage 16 | Xcode.SourceCodeLanguage.Generic 17 | IDECodeSnippetSummary 18 | 19 | IDECodeSnippetTitle 20 | Close UIBarButtonItem 21 | IDECodeSnippetUserSnippet 22 | 23 | IDECodeSnippetVersion 24 | 2 25 | 26 | 27 | -------------------------------------------------------------------------------- /QM_block_var.codesnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDECodeSnippetCompletionPrefix 6 | blockvar 7 | IDECodeSnippetCompletionScopes 8 | 9 | CodeBlock 10 | 11 | IDECodeSnippetContents 12 | <#returnType#> (^<#blockName#>)(<#parameterTypes#>) = ^<#returnType#>(<#parameters#>) { 13 | <#code#> 14 | }; 15 | IDECodeSnippetIdentifier 16 | A403E0E0-2CE2-4A82-B921-BEE3F46DB93C 17 | IDECodeSnippetLanguage 18 | Xcode.SourceCodeLanguage.Objective-C 19 | IDECodeSnippetTitle 20 | 作为局部变量的block定义 21 | IDECodeSnippetUserSnippet 22 | 23 | IDECodeSnippetVersion 24 | 2 25 | 26 | 27 | -------------------------------------------------------------------------------- /QMUI_initSubviews.codesnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDECodeSnippetCompletionPrefix 6 | initSubviews 7 | IDECodeSnippetCompletionScopes 8 | 9 | ClassImplementation 10 | 11 | IDECodeSnippetContents 12 | - (void)initSubviews { 13 | [super initSubviews]; 14 | <#code#> 15 | } 16 | IDECodeSnippetIdentifier 17 | 17B909FE-8769-4CD4-9C0E-5888E770FF00 18 | IDECodeSnippetLanguage 19 | Xcode.SourceCodeLanguage.Objective-C 20 | IDECodeSnippetPlatformFamily 21 | iphoneos 22 | IDECodeSnippetTitle 23 | initSubviews 24 | IDECodeSnippetUserSnippet 25 | 26 | IDECodeSnippetVersion 27 | 2 28 | 29 | 30 | -------------------------------------------------------------------------------- /QM_dispatch_main.codesnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDECodeSnippetCompletionPrefix 6 | dispatch_async_main 7 | IDECodeSnippetCompletionScopes 8 | 9 | All 10 | 11 | IDECodeSnippetContents 12 | dispatch_async(dispatch_get_main_queue(), ^{ 13 | <##> 14 | }); 15 | IDECodeSnippetIdentifier 16 | 8B578048-CFFE-46DF-BB25-3DF5382557DB 17 | IDECodeSnippetLanguage 18 | Xcode.SourceCodeLanguage.Objective-C 19 | IDECodeSnippetPlatformFamily 20 | iphoneos 21 | IDECodeSnippetTitle 22 | dispatch async main queue 23 | IDECodeSnippetUserSnippet 24 | 25 | IDECodeSnippetVersion 26 | 2 27 | 28 | 29 | -------------------------------------------------------------------------------- /QM_setTitleForButton.codesnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDECodeSnippetCompletionPrefix 6 | setTitleForButton 7 | IDECodeSnippetCompletionScopes 8 | 9 | CodeBlock 10 | 11 | IDECodeSnippetContents 12 | [<#button#> setTitle:@"<#title#>" forState:UIControlStateNormal]; 13 | IDECodeSnippetIdentifier 14 | 23208581-6DAE-46C3-BCE0-35025AFDCB62 15 | IDECodeSnippetLanguage 16 | Xcode.SourceCodeLanguage.Objective-C 17 | IDECodeSnippetPlatformFamily 18 | iphoneos 19 | IDECodeSnippetTitle 20 | set UIButton Title 21 | IDECodeSnippetUserSnippet 22 | 23 | IDECodeSnippetVersion 24 | 2 25 | 26 | 27 | -------------------------------------------------------------------------------- /QM_block_as_argument.codesnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDECodeSnippetCompletionPrefix 6 | blockParameterInMethod 7 | IDECodeSnippetCompletionScopes 8 | 9 | All 10 | 11 | IDECodeSnippetContents 12 | (<#returnType#> (^)(<#parameterTypes#>))<#blockName#> 13 | IDECodeSnippetIdentifier 14 | B0665B7F-4534-4DBA-A986-4CD8B7574215 15 | IDECodeSnippetLanguage 16 | Xcode.SourceCodeLanguage.Objective-C 17 | IDECodeSnippetSummary 18 | OC方法参数里的 block 声明 19 | IDECodeSnippetTitle 20 | block as OC method parameter 21 | IDECodeSnippetUserSnippet 22 | 23 | IDECodeSnippetVersion 24 | 2 25 | 26 | 27 | -------------------------------------------------------------------------------- /QM_deprecated.codesnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDECodeSnippetCompletionPrefix 6 | deprecated 7 | IDECodeSnippetCompletionScopes 8 | 9 | All 10 | 11 | IDECodeSnippetContents 12 | DEPRECATED_MSG_ATTRIBUTE("<#message#>") 13 | IDECodeSnippetIdentifier 14 | B3E536D7-2C10-4F21-9FB8-2173A3D5DD8D 15 | IDECodeSnippetLanguage 16 | Xcode.SourceCodeLanguage.Objective-C 17 | IDECodeSnippetPlatformFamily 18 | iphoneos 19 | IDECodeSnippetSummary 20 | 21 | IDECodeSnippetTitle 22 | deprecated message 23 | IDECodeSnippetUserSnippet 24 | 25 | IDECodeSnippetVersion 26 | 2 27 | 28 | 29 | -------------------------------------------------------------------------------- /QM_layoutSubviews.codesnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDECodeSnippetCompletionPrefix 6 | layoutSubviews 7 | IDECodeSnippetCompletionScopes 8 | 9 | ClassImplementation 10 | 11 | IDECodeSnippetContents 12 | - (void)layoutSubviews { 13 | [super layoutSubviews]; 14 | <#code#> 15 | } 16 | IDECodeSnippetIdentifier 17 | 1795B602-AC2C-46C8-900F-7157C26857EC 18 | IDECodeSnippetLanguage 19 | Xcode.SourceCodeLanguage.Objective-C 20 | IDECodeSnippetPlatformFamily 21 | iphoneos 22 | IDECodeSnippetTitle 23 | layoutSubviews 24 | IDECodeSnippetUserSnippet 25 | 26 | IDECodeSnippetVersion 27 | 2 28 | 29 | 30 | -------------------------------------------------------------------------------- /QM_block_as_argument_in_Function.codesnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDECodeSnippetCompletionPrefix 6 | blockParameterInFunction 7 | IDECodeSnippetCompletionScopes 8 | 9 | All 10 | 11 | IDECodeSnippetContents 12 | <#returnType#> (^<#blockName#>)(<#parameterTypes#>) 13 | IDECodeSnippetIdentifier 14 | F0EEA7C4-643E-4347-BE1C-762B578B6929 15 | IDECodeSnippetLanguage 16 | Xcode.SourceCodeLanguage.Objective-C 17 | IDECodeSnippetSummary 18 | C函数参数里的 block 声明 19 | IDECodeSnippetTitle 20 | block as C function parameter 21 | IDECodeSnippetUserSnippet 22 | 23 | IDECodeSnippetVersion 24 | 2 25 | 26 | 27 | -------------------------------------------------------------------------------- /QM_setFrame.codesnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDECodeSnippetCompletionPrefix 6 | setFrame 7 | IDECodeSnippetCompletionScopes 8 | 9 | All 10 | 11 | IDECodeSnippetContents 12 | <#view#>.frame = CGRectMake(<#CGFloat x#>, <#CGFloat y#>, <#CGFloat width#>, <#CGFloat height#>) 13 | IDECodeSnippetIdentifier 14 | 55D23AA0-FB1C-46D5-898A-E83791641D1C 15 | IDECodeSnippetLanguage 16 | Xcode.SourceCodeLanguage.Objective-C 17 | IDECodeSnippetPlatformFamily 18 | iphoneos 19 | IDECodeSnippetTitle 20 | set Frame 21 | IDECodeSnippetUserSnippet 22 | 23 | IDECodeSnippetVersion 24 | 2 25 | 26 | 27 | -------------------------------------------------------------------------------- /QM_setTitleColorForButton.codesnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDECodeSnippetCompletionPrefix 6 | setTitleColorForButton 7 | IDECodeSnippetCompletionScopes 8 | 9 | CodeBlock 10 | 11 | IDECodeSnippetContents 12 | [<#button#> setTitleColor:<#color#> forState:UIControlStateNormal]; 13 | IDECodeSnippetIdentifier 14 | FFCD7C84-551D-467B-938D-BB0B2E9A31AF 15 | IDECodeSnippetLanguage 16 | Xcode.SourceCodeLanguage.Objective-C 17 | IDECodeSnippetPlatformFamily 18 | iphoneos 19 | IDECodeSnippetTitle 20 | set UIButton Title Color 21 | IDECodeSnippetUserSnippet 22 | 23 | IDECodeSnippetVersion 24 | 2 25 | 26 | 27 | -------------------------------------------------------------------------------- /rac_kvo.codesnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDECodeSnippetCompletionPrefix 6 | rac_kvo 7 | IDECodeSnippetCompletionScopes 8 | 9 | CodeBlock 10 | 11 | IDECodeSnippetContents 12 | [RACObserve(<#object#>, <#property#>) subscribeNext:^(id x) { 13 | <##> 14 | }]; 15 | IDECodeSnippetIdentifier 16 | BEBAED0D-8043-4BFA-9ED6-75524C49E23B 17 | IDECodeSnippetLanguage 18 | Xcode.SourceCodeLanguage.Objective-C 19 | IDECodeSnippetPlatformFamily 20 | iphoneos 21 | IDECodeSnippetTitle 22 | RAC KVO Observe 23 | IDECodeSnippetUserSnippet 24 | 25 | IDECodeSnippetVersion 26 | 2 27 | 28 | 29 | -------------------------------------------------------------------------------- /QM_function_handleEvent.codesnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDECodeSnippetCompletionPrefix 6 | fnv_handleEvent 7 | IDECodeSnippetCompletionScopes 8 | 9 | ClassImplementation 10 | 11 | IDECodeSnippetContents 12 | - (void)handle<#ControlName#>Event:(id)sender { 13 | <#code#> 14 | } 15 | 16 | IDECodeSnippetIdentifier 17 | 53A49D67-CFF3-4449-AE38-B50E4F44529F 18 | IDECodeSnippetLanguage 19 | Xcode.SourceCodeLanguage.Objective-C 20 | IDECodeSnippetPlatformFamily 21 | iphoneos 22 | IDECodeSnippetTitle 23 | 创建UIControl的事件回调 24 | IDECodeSnippetUserSnippet 25 | 26 | IDECodeSnippetVersion 27 | 2 28 | 29 | 30 | -------------------------------------------------------------------------------- /QMUI_setupToolbarItems.codesnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDECodeSnippetCompletionPrefix 6 | setupToolbarItems 7 | IDECodeSnippetCompletionScopes 8 | 9 | ClassImplementation 10 | 11 | IDECodeSnippetContents 12 | - (void)setupToolbarItems { 13 | [super setupToolbarItems]; 14 | <#code#> 15 | } 16 | IDECodeSnippetIdentifier 17 | 022DE893-7D28-4272-B3F7-9B493601EFBE 18 | IDECodeSnippetLanguage 19 | Xcode.SourceCodeLanguage.Objective-C 20 | IDECodeSnippetPlatformFamily 21 | iphoneos 22 | IDECodeSnippetTitle 23 | setupToolbarItems 24 | IDECodeSnippetUserSnippet 25 | 26 | IDECodeSnippetVersion 27 | 2 28 | 29 | 30 | -------------------------------------------------------------------------------- /QM_function_handlePan.codesnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDECodeSnippetCompletionPrefix 6 | fnv_pan 7 | IDECodeSnippetCompletionScopes 8 | 9 | ClassImplementation 10 | 11 | IDECodeSnippetContents 12 | - (void)handlePanGestureRecognizer:(UIPanGestureRecognizer *)gestureRecognizer { 13 | <#code#> 14 | } 15 | IDECodeSnippetIdentifier 16 | 85908275-A2F1-49FA-8188-739CC7FF1BF5 17 | IDECodeSnippetLanguage 18 | Xcode.SourceCodeLanguage.Objective-C 19 | IDECodeSnippetPlatformFamily 20 | iphoneos 21 | IDECodeSnippetTitle 22 | 创建pan手势事件回调 23 | IDECodeSnippetUserSnippet 24 | 25 | IDECodeSnippetVersion 26 | 2 27 | 28 | 29 | -------------------------------------------------------------------------------- /QM_function_handleTap.codesnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDECodeSnippetCompletionPrefix 6 | fnv_tap 7 | IDECodeSnippetCompletionScopes 8 | 9 | ClassImplementation 10 | 11 | IDECodeSnippetContents 12 | - (void)handleTapGestureRecognizer:(UITapGestureRecognizer *)gestureRecognizer { 13 | <#code#> 14 | } 15 | IDECodeSnippetIdentifier 16 | AC95589F-A1AE-4D8B-A753-4F6D9C5DBBE3 17 | IDECodeSnippetLanguage 18 | Xcode.SourceCodeLanguage.Objective-C 19 | IDECodeSnippetPlatformFamily 20 | iphoneos 21 | IDECodeSnippetTitle 22 | 创建tap手势事件回调 23 | IDECodeSnippetUserSnippet 24 | 25 | IDECodeSnippetVersion 26 | 2 27 | 28 | 29 | -------------------------------------------------------------------------------- /QM_updateConstraints.codesnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDECodeSnippetCompletionPrefix 6 | updateConstraints 7 | IDECodeSnippetCompletionScopes 8 | 9 | ClassImplementation 10 | 11 | IDECodeSnippetContents 12 | - (void)updateConstraints { 13 | <#code#> 14 | [super updateConstraints]; 15 | } 16 | IDECodeSnippetIdentifier 17 | 6D8F1F97-6FDD-44F6-890D-BD590F3C5F8D 18 | IDECodeSnippetLanguage 19 | Xcode.SourceCodeLanguage.Objective-C 20 | IDECodeSnippetPlatformFamily 21 | iphoneos 22 | IDECodeSnippetTitle 23 | updateConstraints 24 | IDECodeSnippetUserSnippet 25 | 26 | IDECodeSnippetVersion 27 | 2 28 | 29 | 30 | -------------------------------------------------------------------------------- /QMUI_didInitializedWithStyle_cell.codesnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDECodeSnippetCompletionPrefix 6 | didInitializeWithStyle_cell 7 | IDECodeSnippetCompletionScopes 8 | 9 | ClassImplementation 10 | 11 | IDECodeSnippetContents 12 | - (void)didInitializeWithStyle:(UITableViewCellStyle)style { 13 | [super didInitializeWithStyle:style]; 14 | <##> 15 | } 16 | IDECodeSnippetIdentifier 17 | 8D9C07CC-59C0-4411-A4D3-AB5758DC0901 18 | IDECodeSnippetLanguage 19 | Xcode.SourceCodeLanguage.Objective-C 20 | IDECodeSnippetTitle 21 | didInitializeWithStyle - QMUITableViewCell 22 | IDECodeSnippetUserSnippet 23 | 24 | IDECodeSnippetVersion 25 | 2 26 | 27 | 28 | -------------------------------------------------------------------------------- /QM_function_return_block.codesnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDECodeSnippetCompletionPrefix 6 | fnblock 7 | IDECodeSnippetCompletionScopes 8 | 9 | ClassImplementation 10 | 11 | IDECodeSnippetContents 12 | - (<#returnType#> (^)(<#parameterTypes#>))<#method name#> { 13 | <#code#> 14 | } 15 | IDECodeSnippetIdentifier 16 | 2967221D-E2CF-4AB4-9F96-FABDDC747F4F 17 | IDECodeSnippetLanguage 18 | Xcode.SourceCodeLanguage.Objective-C 19 | IDECodeSnippetPlatformFamily 20 | iphoneos 21 | IDECodeSnippetTitle 22 | 创建一个返回值为block类型的方法 23 | IDECodeSnippetUserSnippet 24 | 25 | IDECodeSnippetVersion 26 | 2 27 | 28 | 29 | -------------------------------------------------------------------------------- /QMUI_didInitializedWithStyle.codesnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDECodeSnippetCompletionPrefix 6 | didInitializeWithStyle_tableView 7 | IDECodeSnippetCompletionScopes 8 | 9 | ClassImplementation 10 | 11 | IDECodeSnippetContents 12 | - (void)didInitializeWithStyle:(UITableViewStyle)style { 13 | [super didInitializeWithStyle:style]; 14 | <##> 15 | } 16 | IDECodeSnippetIdentifier 17 | B35A0A1F-EA35-4D3A-A579-5FA0E7DF2AA3 18 | IDECodeSnippetLanguage 19 | Xcode.SourceCodeLanguage.Objective-C 20 | IDECodeSnippetTitle 21 | didInitializeWithStyle - QMUICommonTableViewController 22 | IDECodeSnippetUserSnippet 23 | 24 | IDECodeSnippetVersion 25 | 2 26 | 27 | 28 | -------------------------------------------------------------------------------- /QM_ifOSavailable.codesnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDECodeSnippetCompletionPrefix 6 | osif 7 | IDECodeSnippetCompletionScopes 8 | 9 | CodeBlock 10 | 11 | IDECodeSnippetContents 12 | if (@available(iOS <#15.0#>, *)) { 13 | <#statements#> 14 | } 15 | 16 | IDECodeSnippetIdentifier 17 | EABDAB9C-966F-4442-B386-DFBAC52FF6D9 18 | IDECodeSnippetLanguage 19 | Xcode.SourceCodeLanguage.Objective-C 20 | IDECodeSnippetPlatformFamily 21 | iphoneos 22 | IDECodeSnippetSummary 23 | 24 | IDECodeSnippetTitle 25 | @available iOS 26 | IDECodeSnippetUserSnippet 27 | 28 | IDECodeSnippetVersion 29 | 2 30 | 31 | 32 | -------------------------------------------------------------------------------- /QM_timeConsuming.codesnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDECodeSnippetCompletionPrefix 6 | timeConsuming 7 | IDECodeSnippetCompletionScopes 8 | 9 | CodeBlock 10 | 11 | IDECodeSnippetContents 12 | CFTimeInterval startTime = CACurrentMediaTime(); 13 | <#code here#> 14 | CFTimeInterval endTime = CACurrentMediaTime(); 15 | CFTimeInterval consumingTime = endTime - startTime; 16 | NSLog(@"耗时:%@", @(consumingTime)); 17 | IDECodeSnippetIdentifier 18 | F03D957F-693E-464B-B5EE-579E045B81C1 19 | IDECodeSnippetLanguage 20 | Xcode.SourceCodeLanguage.Objective-C 21 | IDECodeSnippetTitle 22 | 耗时计算 23 | IDECodeSnippetUserSnippet 24 | 25 | IDECodeSnippetVersion 26 | 2 27 | 28 | 29 | -------------------------------------------------------------------------------- /QM_updateViewConstraints.codesnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDECodeSnippetCompletionPrefix 6 | updateViewConstraints 7 | IDECodeSnippetCompletionScopes 8 | 9 | ClassImplementation 10 | 11 | IDECodeSnippetContents 12 | - (void)updateViewConstraints { 13 | <#code#> 14 | [super updateViewConstraints]; 15 | } 16 | IDECodeSnippetIdentifier 17 | 22751980-797F-4ED0-8729-EB822E3C23A4 18 | IDECodeSnippetLanguage 19 | Xcode.SourceCodeLanguage.Objective-C 20 | IDECodeSnippetPlatformFamily 21 | iphoneos 22 | IDECodeSnippetTitle 23 | updateViewConstraints 24 | IDECodeSnippetUserSnippet 25 | 26 | IDECodeSnippetVersion 27 | 2 28 | 29 | 30 | -------------------------------------------------------------------------------- /QM_dispatch_global.codesnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDECodeSnippetCompletionPrefix 6 | dispatch_async_global 7 | IDECodeSnippetCompletionScopes 8 | 9 | CodeBlock 10 | 11 | IDECodeSnippetContents 12 | dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ 13 | <##> 14 | }); 15 | IDECodeSnippetIdentifier 16 | 6488796C-06A8-475A-9488-DD899B3EAC1A 17 | IDECodeSnippetLanguage 18 | Xcode.SourceCodeLanguage.Objective-C 19 | IDECodeSnippetPlatformFamily 20 | iphoneos 21 | IDECodeSnippetTitle 22 | dispatch async global queue 23 | IDECodeSnippetUserSnippet 24 | 25 | IDECodeSnippetVersion 26 | 2 27 | 28 | 29 | -------------------------------------------------------------------------------- /QM_function_handleLongPress.codesnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDECodeSnippetCompletionPrefix 6 | fnv_longPress 7 | IDECodeSnippetCompletionScopes 8 | 9 | ClassImplementation 10 | 11 | IDECodeSnippetContents 12 | - (void)handleLongPressGestureRecognizer:(UILongPressGestureRecognizer *)gestureRecognizer { 13 | <#code#> 14 | } 15 | IDECodeSnippetIdentifier 16 | 880C4894-BB6F-4C9C-8758-6185CE801894 17 | IDECodeSnippetLanguage 18 | Xcode.SourceCodeLanguage.Objective-C 19 | IDECodeSnippetPlatformFamily 20 | iphoneos 21 | IDECodeSnippetTitle 22 | 创建longPress手势事件回调 23 | IDECodeSnippetUserSnippet 24 | 25 | IDECodeSnippetVersion 26 | 2 27 | 28 | 29 | -------------------------------------------------------------------------------- /QM_property_copy_readonly.codesnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDECodeSnippetCompletionPrefix 6 | pcr 7 | IDECodeSnippetCompletionScopes 8 | 9 | ClassInterfaceMethods 10 | All 11 | ClassInterfaceVariables 12 | 13 | IDECodeSnippetContents 14 | @property(nonatomic, copy, readonly) <#type#> *<#name#>; 15 | IDECodeSnippetIdentifier 16 | BE7A7A16-BA79-45AF-A62B-869A12C1E257 17 | IDECodeSnippetLanguage 18 | Xcode.SourceCodeLanguage.Objective-C 19 | IDECodeSnippetSummary 20 | 21 | IDECodeSnippetTitle 22 | Property For Copy And Readonly 23 | IDECodeSnippetUserSnippet 24 | 25 | IDECodeSnippetVersion 26 | 2 27 | 28 | 29 | -------------------------------------------------------------------------------- /QM_initWithNib.codesnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDECodeSnippetCompletionPrefix 6 | initWithNib 7 | IDECodeSnippetCompletionScopes 8 | 9 | ClassImplementation 10 | 11 | IDECodeSnippetContents 12 | - (instancetype)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil { 13 | if (self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]) { 14 | <##> 15 | } 16 | return self; 17 | } 18 | IDECodeSnippetIdentifier 19 | 97299DFC-3270-4449-89FC-30446EB10CC4 20 | IDECodeSnippetLanguage 21 | Xcode.SourceCodeLanguage.Objective-C 22 | IDECodeSnippetTitle 23 | initWithNib 24 | IDECodeSnippetUserSnippet 25 | 26 | IDECodeSnippetVersion 27 | 2 28 | 29 | 30 | -------------------------------------------------------------------------------- /QM_numberOfSectionsInTableView.codesnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDECodeSnippetCompletionPrefix 6 | numberOfSectionsInTableView 7 | IDECodeSnippetCompletionScopes 8 | 9 | ClassImplementation 10 | 11 | IDECodeSnippetContents 12 | - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { 13 | return <#number#>; 14 | } 15 | IDECodeSnippetIdentifier 16 | D7C98832-B74F-4274-881D-50D6EA4981B2 17 | IDECodeSnippetLanguage 18 | Xcode.SourceCodeLanguage.Objective-C 19 | IDECodeSnippetPlatformFamily 20 | iphoneos 21 | IDECodeSnippetTitle 22 | numberOfSectionsInTableView: 23 | IDECodeSnippetUserSnippet 24 | 25 | IDECodeSnippetVersion 26 | 2 27 | 28 | 29 | -------------------------------------------------------------------------------- /QM_didSelectRowAtIndexPath.codesnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDECodeSnippetCompletionPrefix 6 | didSelectRowAtIndexPath 7 | IDECodeSnippetCompletionScopes 8 | 9 | ClassImplementation 10 | 11 | IDECodeSnippetContents 12 | - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 13 | <#code#> 14 | } 15 | IDECodeSnippetIdentifier 16 | 5090E861-C500-42E1-B0FE-2F30D4A4B752 17 | IDECodeSnippetLanguage 18 | Xcode.SourceCodeLanguage.Objective-C 19 | IDECodeSnippetPlatformFamily 20 | iphoneos 21 | IDECodeSnippetTitle 22 | didSelectRowAtIndexPath: 23 | IDECodeSnippetUserSnippet 24 | 25 | IDECodeSnippetVersion 26 | 2 27 | 28 | 29 | -------------------------------------------------------------------------------- /QM_numberOfRowsInSection.codesnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDECodeSnippetCompletionPrefix 6 | numberOfRowsInSection 7 | IDECodeSnippetCompletionScopes 8 | 9 | ClassImplementation 10 | 11 | IDECodeSnippetContents 12 | - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { 13 | return <#numberOfRows#> 14 | } 15 | IDECodeSnippetIdentifier 16 | A57800E7-5EA2-44BC-A868-39E0FB029E6C 17 | IDECodeSnippetLanguage 18 | Xcode.SourceCodeLanguage.Objective-C 19 | IDECodeSnippetPlatformFamily 20 | iphoneos 21 | IDECodeSnippetTitle 22 | numberOfRowsInSection: 23 | IDECodeSnippetUserSnippet 24 | 25 | IDECodeSnippetVersion 26 | 2 27 | 28 | 29 | -------------------------------------------------------------------------------- /QMUI_extendVoidReturnNonArgv.codesnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDECodeSnippetCompletionPrefix 6 | extend_void_non_argv 7 | IDECodeSnippetCompletionScopes 8 | 9 | CodeBlock 10 | 11 | IDECodeSnippetContents 12 | ExtendImplementationOfVoidMethodWithoutArguments([<#targetClass#> class], @selector(<#targetSelector#>), ^(<#targetClass#> *selfObject) { 13 | <#custom extend#> 14 | }); 15 | IDECodeSnippetIdentifier 16 | 61D9E89B-0189-4153-8FFA-7B8C2EE05F9D 17 | IDECodeSnippetLanguage 18 | Xcode.SourceCodeLanguage.Objective-C 19 | IDECodeSnippetTitle 20 | Extend Implementation Of Void Return Non Argument 21 | IDECodeSnippetUserSnippet 22 | 23 | IDECodeSnippetVersion 24 | 2 25 | 26 | 27 | -------------------------------------------------------------------------------- /QM_didSelectItemAtIndexPath.codesnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDECodeSnippetCompletionPrefix 6 | didSelectItemAtIndexPath 7 | IDECodeSnippetCompletionScopes 8 | 9 | ClassImplementation 10 | 11 | IDECodeSnippetContents 12 | - (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath { 13 | <#code#> 14 | } 15 | IDECodeSnippetIdentifier 16 | 0790FF6C-A6AE-496F-B7E9-2C12432156EC 17 | IDECodeSnippetLanguage 18 | Xcode.SourceCodeLanguage.Objective-C 19 | IDECodeSnippetPlatformFamily 20 | iphoneos 21 | IDECodeSnippetTitle 22 | didSelectItemAtIndexPath: 23 | IDECodeSnippetUserSnippet 24 | 25 | IDECodeSnippetVersion 26 | 2 27 | 28 | 29 | -------------------------------------------------------------------------------- /QM_heightForRowAtIndexPath.codesnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDECodeSnippetCompletionPrefix 6 | heightForRowAtIndexPath 7 | IDECodeSnippetCompletionScopes 8 | 9 | ClassImplementation 10 | 11 | IDECodeSnippetContents 12 | - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { 13 | return <#heightForRow#>; 14 | } 15 | IDECodeSnippetIdentifier 16 | 0240A193-5CFE-4805-9006-82DBFD69741F 17 | IDECodeSnippetLanguage 18 | Xcode.SourceCodeLanguage.Objective-C 19 | IDECodeSnippetPlatformFamily 20 | iphoneos 21 | IDECodeSnippetTitle 22 | heightForRowAtIndexPath: 23 | IDECodeSnippetUserSnippet 24 | 25 | IDECodeSnippetVersion 26 | 2 27 | 28 | 29 | -------------------------------------------------------------------------------- /QM_didDeselectItemAtIndexPath.codesnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDECodeSnippetCompletionPrefix 6 | didDeselectItemAtIndexPath 7 | IDECodeSnippetCompletionScopes 8 | 9 | ClassImplementation 10 | 11 | IDECodeSnippetContents 12 | - (void)collectionView:(UICollectionView *)collectionView didDeselectItemAtIndexPath:(NSIndexPath *)indexPath { 13 | <#code#> 14 | } 15 | IDECodeSnippetIdentifier 16 | 8856E30C-BC54-42E2-97DA-882B595548F6 17 | IDECodeSnippetLanguage 18 | Xcode.SourceCodeLanguage.Objective-C 19 | IDECodeSnippetPlatformFamily 20 | iphoneos 21 | IDECodeSnippetTitle 22 | didDeselectItemAtIndexPath: 23 | IDECodeSnippetUserSnippet 24 | 25 | IDECodeSnippetVersion 26 | 2 27 | 28 | 29 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | (The MIT License) 2 | 3 | Copyright (c) 2016 QMUI Team 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /QM_numberOfItemsInSection.codesnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDECodeSnippetCompletionPrefix 6 | numberOfItemsInSection 7 | IDECodeSnippetCompletionScopes 8 | 9 | ClassImplementation 10 | 11 | IDECodeSnippetContents 12 | - (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section { 13 | return <#numberOfItemsInSection#>; 14 | } 15 | IDECodeSnippetIdentifier 16 | 101B0213-960B-478E-9D50-99EA39F3CC9F 17 | IDECodeSnippetLanguage 18 | Xcode.SourceCodeLanguage.Objective-C 19 | IDECodeSnippetPlatformFamily 20 | iphoneos 21 | IDECodeSnippetTitle 22 | numberOfItemsInSection: 23 | IDECodeSnippetUserSnippet 24 | 25 | IDECodeSnippetVersion 26 | 2 27 | 28 | 29 | -------------------------------------------------------------------------------- /QM_numberOfSectionsInCollectionView.codesnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDECodeSnippetCompletionPrefix 6 | numberOfSectionsInCollectionView 7 | IDECodeSnippetCompletionScopes 8 | 9 | ClassImplementation 10 | 11 | IDECodeSnippetContents 12 | - (NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView { 13 | return <#numberOfSections#>; 14 | } 15 | IDECodeSnippetIdentifier 16 | BCBDF4CD-8EAD-48F7-A96A-8A48C188D1C2 17 | IDECodeSnippetLanguage 18 | Xcode.SourceCodeLanguage.Objective-C 19 | IDECodeSnippetPlatformFamily 20 | iphoneos 21 | IDECodeSnippetTitle 22 | numberOfSectionsInCollectionView: 23 | IDECodeSnippetUserSnippet 24 | 25 | IDECodeSnippetVersion 26 | 2 27 | 28 | 29 | -------------------------------------------------------------------------------- /QM_tableView_initWithStyle.codesnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDECodeSnippetCompletionPrefix 6 | initWithStyle 7 | IDECodeSnippetCompletionScopes 8 | 9 | ClassImplementation 10 | 11 | IDECodeSnippetContents 12 | - (instancetype)initWithStyle:(UITableViewStyle)style { 13 | if (self = [super initWithStyle:style]) { 14 | <#code#> 15 | } 16 | return self; 17 | } 18 | IDECodeSnippetIdentifier 19 | E61F2B72-1DDE-42D9-A0CB-B713695C598E 20 | IDECodeSnippetLanguage 21 | Xcode.SourceCodeLanguage.Objective-C 22 | IDECodeSnippetPlatformFamily 23 | iphoneos 24 | IDECodeSnippetTitle 25 | UITableView -initWithStyle: 26 | IDECodeSnippetUserSnippet 27 | 28 | IDECodeSnippetVersion 29 | 2 30 | 31 | 32 | -------------------------------------------------------------------------------- /QMUI_setupNavigationItems.codesnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDECodeSnippetCompletionPrefix 6 | setupNavigationItems 7 | IDECodeSnippetCompletionScopes 8 | 9 | ClassImplementation 10 | 11 | IDECodeSnippetContents 12 | - (void)setupNavigationItems { 13 | [super setupNavigationItems]; 14 | self.title = @"<##>"; 15 | } 16 | IDECodeSnippetIdentifier 17 | DC0DDC5E-D32D-49BF-A61E-06403ADBB977 18 | IDECodeSnippetLanguage 19 | Xcode.SourceCodeLanguage.Objective-C 20 | IDECodeSnippetPlatformFamily 21 | iphoneos 22 | IDECodeSnippetSummary 23 | 设置 navigationItem 24 | IDECodeSnippetTitle 25 | setupNavigationItems 26 | IDECodeSnippetUserSnippet 27 | 28 | IDECodeSnippetVersion 29 | 2 30 | 31 | 32 | -------------------------------------------------------------------------------- /QM_tableView_insetNever.codesnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDECodeSnippetCompletionPrefix 6 | tableView_scrollNever 7 | IDECodeSnippetCompletionScopes 8 | 9 | CodeBlock 10 | 11 | IDECodeSnippetContents 12 | if (@available(iOS 11, *)) { 13 | self.tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever; 14 | } else { 15 | self.automaticallyAdjustsScrollViewInsets = NO; 16 | } 17 | IDECodeSnippetIdentifier 18 | 4D8558EC-1D8E-4B11-9C69-50614951CA1F 19 | IDECodeSnippetLanguage 20 | Xcode.SourceCodeLanguage.Objective-C 21 | IDECodeSnippetSummary 22 | 23 | IDECodeSnippetTitle 24 | UITableView Scroll Never 25 | IDECodeSnippetUserSnippet 26 | 27 | IDECodeSnippetVersion 28 | 2 29 | 30 | 31 | -------------------------------------------------------------------------------- /QMUI_exchangeImplementation.codesnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDECodeSnippetCompletionPrefix 6 | exchangeImplementation_QMUI 7 | IDECodeSnippetCompletionScopes 8 | 9 | ClassImplementation 10 | 11 | IDECodeSnippetContents 12 | + (void)load { 13 | static dispatch_once_t onceToken; 14 | dispatch_once(&onceToken, ^{ 15 | ExchangeImplementations(<#class#>, @selector(<#origin selecotr#>), @selector(<#new selector#>)); 16 | }); 17 | } 18 | IDECodeSnippetIdentifier 19 | 444CF4FA-4BD2-43F5-8278-7234EA8E5FBF 20 | IDECodeSnippetLanguage 21 | Xcode.SourceCodeLanguage.Objective-C 22 | IDECodeSnippetTitle 23 | exchange method implementations in +load with QMUI 24 | IDECodeSnippetUserSnippet 25 | 26 | IDECodeSnippetVersion 27 | 2 28 | 29 | 30 | -------------------------------------------------------------------------------- /QMUI_extendVoidReturnSingleArgv.codesnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDECodeSnippetCompletionPrefix 6 | extend_void_single_argv 7 | IDECodeSnippetCompletionScopes 8 | 9 | CodeBlock 10 | 11 | IDECodeSnippetContents 12 | ExtendImplementationOfVoidMethodWithSingleArgument([<#targetClass#> class], @selector(<#targetSelector#>), <#argumentType#>, ^(<#targetClass#> *selfObject, <#argumentType#> firstArgv) { 13 | <#custom extend#> 14 | }); 15 | IDECodeSnippetIdentifier 16 | 646E8309-8AE3-4E5B-BBBD-744958FBA30E 17 | IDECodeSnippetLanguage 18 | Xcode.SourceCodeLanguage.Objective-C 19 | IDECodeSnippetTitle 20 | Extend Implementation Of Void Return Single Argument 21 | IDECodeSnippetUserSnippet 22 | 23 | IDECodeSnippetVersion 24 | 2 25 | 26 | 27 | -------------------------------------------------------------------------------- /QM_sizeThatFits.codesnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDECodeSnippetCompletionPrefix 6 | sizeThatFits 7 | IDECodeSnippetCompletionScopes 8 | 9 | ClassImplementation 10 | 11 | IDECodeSnippetContents 12 | - (CGSize)sizeThatFits:(CGSize)size { 13 | CGSize resultSize = size; 14 | 15 | CGFloat resultWidth = <#0#>; 16 | resultSize.width = MIN(resultWidth, size.width); 17 | 18 | CGFloat resultHeight = <#0#>; 19 | resultSize.height = resultHeight; 20 | 21 | return resultSize; 22 | } 23 | IDECodeSnippetIdentifier 24 | 8BBED35F-461D-418F-A2E1-3CCF058B4814 25 | IDECodeSnippetLanguage 26 | Xcode.SourceCodeLanguage.Objective-C 27 | IDECodeSnippetTitle 28 | sizeThatFits: 29 | IDECodeSnippetUserSnippet 30 | 31 | IDECodeSnippetVersion 32 | 2 33 | 34 | 35 | -------------------------------------------------------------------------------- /QM_sizeForItemAtIndexPath.codesnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDECodeSnippetCompletionPrefix 6 | sizeForItemAtIndexPath 7 | IDECodeSnippetCompletionScopes 8 | 9 | ClassImplementation 10 | 11 | IDECodeSnippetContents 12 | - (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath { 13 | return CGSizeMake(<#width#>, <#height#>); 14 | } 15 | IDECodeSnippetIdentifier 16 | AD640EEB-3A51-46EF-8B2E-47B72779C9C3 17 | IDECodeSnippetLanguage 18 | Xcode.SourceCodeLanguage.Objective-C 19 | IDECodeSnippetPlatformFamily 20 | iphoneos 21 | IDECodeSnippetTitle 22 | sizeForItemAtIndexPath: 23 | IDECodeSnippetUserSnippet 24 | 25 | IDECodeSnippetVersion 26 | 2 27 | 28 | 29 | -------------------------------------------------------------------------------- /QMUI_extendNonVoidReturnNonArgv.codesnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDECodeSnippetCompletionPrefix 6 | extend_return_non_argv 7 | IDECodeSnippetCompletionScopes 8 | 9 | CodeBlock 10 | 11 | IDECodeSnippetContents 12 | ExtendImplementationOfNonVoidMethodWithoutArguments([<#targetClass#> class], @selector(<#targetSelector#>), <#returnType#>, ^<#returnType#>(<#targetClass#> *selfObject, <#returnType#> originReturnValue) { 13 | return <#custom extend#> 14 | }); 15 | IDECodeSnippetIdentifier 16 | 00BCE9A8-0268-4700-BA64-83A000EF3825 17 | IDECodeSnippetLanguage 18 | Xcode.SourceCodeLanguage.Objective-C 19 | IDECodeSnippetTitle 20 | Extend Implementation Of Non Void Return Non Argument 21 | IDECodeSnippetUserSnippet 22 | 23 | IDECodeSnippetVersion 24 | 2 25 | 26 | 27 | -------------------------------------------------------------------------------- /QM_removeFromParentViewController.codesnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDECodeSnippetCompletionPrefix 6 | removeFromParentViewController 7 | IDECodeSnippetCompletionScopes 8 | 9 | CodeBlock 10 | 11 | IDECodeSnippetContents 12 | [<#childViewController#> willMoveToParentViewController:nil]; 13 | [<#childViewController#>.view removeFromSuperview]; 14 | [<#childViewController#> removeFromParentViewController]; 15 | IDECodeSnippetIdentifier 16 | 04996CD3-4E1F-49A9-A3CC-C3E42D5673BB 17 | IDECodeSnippetLanguage 18 | Xcode.SourceCodeLanguage.Objective-C 19 | IDECodeSnippetSummary 20 | UIViewController removeFromParentViewController 21 | IDECodeSnippetTitle 22 | removeFromParentViewController 23 | IDECodeSnippetUserSnippet 24 | 25 | IDECodeSnippetVersion 26 | 2 27 | 28 | 29 | -------------------------------------------------------------------------------- /QMUI_extendVoidReturnTwoArgvs.codesnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDECodeSnippetCompletionPrefix 6 | extend_void_two_argvs 7 | IDECodeSnippetCompletionScopes 8 | 9 | CodeBlock 10 | 11 | IDECodeSnippetContents 12 | ExtendImplementationOfVoidMethodWithTwoArguments([<#targetClass#> class], @selector(<#targetSelector#>), <#argumentType1#>, <#argumentType2#>, ^(<#targetClass#> *selfObject, <#argumentType1#> firstArgv, <#argumentType2#> secondArgv) { 13 | <#custom extend#> 14 | }); 15 | IDECodeSnippetIdentifier 16 | 61426012-95A0-401A-A3AC-89F229A9B831 17 | IDECodeSnippetLanguage 18 | Xcode.SourceCodeLanguage.Objective-C 19 | IDECodeSnippetTitle 20 | Extend Implementation Of Void Return Two Arguments 21 | IDECodeSnippetUserSnippet 22 | 23 | IDECodeSnippetVersion 24 | 2 25 | 26 | 27 | -------------------------------------------------------------------------------- /QM_sharedInstance.codesnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDECodeSnippetCompletionPrefix 6 | sharedInstance 7 | IDECodeSnippetCompletionScopes 8 | 9 | ClassImplementation 10 | 11 | IDECodeSnippetContents 12 | + (instancetype)sharedInstance { 13 | static dispatch_once_t onceToken; 14 | static <#class name#> *instance = nil; 15 | dispatch_once(&onceToken, ^{ 16 | instance = [[super allocWithZone:NULL] init]; 17 | }); 18 | return instance; 19 | } 20 | 21 | + (id)allocWithZone:(struct _NSZone *)zone { 22 | return [self sharedInstance]; 23 | } 24 | IDECodeSnippetIdentifier 25 | 26D03BCD-735E-4CFD-8E48-3DBA65BC70A1 26 | IDECodeSnippetLanguage 27 | Xcode.SourceCodeLanguage.Objective-C 28 | IDECodeSnippetTitle 29 | sharedInstance 30 | IDECodeSnippetUserSnippet 31 | 32 | IDECodeSnippetVersion 33 | 2 34 | 35 | 36 | -------------------------------------------------------------------------------- /QM_addChildViewController.codesnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDECodeSnippetCompletionPrefix 6 | addChildViewController 7 | IDECodeSnippetCompletionScopes 8 | 9 | CodeBlock 10 | 11 | IDECodeSnippetContents 12 | [self addChildViewController:<#childViewController#>]; 13 | [self.view addSubview:<#childViewController#>.view]; 14 | [<#childViewController#> didMoveToParentViewController:self]; 15 | IDECodeSnippetIdentifier 16 | 51608015-7179-49F1-8CF7-4810CEF069E0 17 | IDECodeSnippetLanguage 18 | Xcode.SourceCodeLanguage.Objective-C 19 | IDECodeSnippetPlatformFamily 20 | iphoneos 21 | IDECodeSnippetSummary 22 | UIViewController addChildViewController: 23 | IDECodeSnippetTitle 24 | addChildViewController 25 | IDECodeSnippetUserSnippet 26 | 27 | IDECodeSnippetVersion 28 | 2 29 | 30 | 31 | -------------------------------------------------------------------------------- /QMUI_extendNonVoidReturnSingleArgv.codesnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDECodeSnippetCompletionPrefix 6 | extend_return_single_argv 7 | IDECodeSnippetCompletionScopes 8 | 9 | CodeBlock 10 | 11 | IDECodeSnippetContents 12 | ExtendImplementationOfNonVoidMethodWithSingleArgument([<#targetClass#> class], @selector(<#targetSelector#>), <#argumentType#>, <#returnType#>, ^<#returnType#>(<#targetClass#> *selfObject, <#argumentType#> firstArgv, <#returnType#> originReturnValue) { 13 | return <#custom extend#>; 14 | }); 15 | IDECodeSnippetIdentifier 16 | D96EBFBE-EA27-4210-B9D4-8172B875559A 17 | IDECodeSnippetLanguage 18 | Xcode.SourceCodeLanguage.Objective-C 19 | IDECodeSnippetTitle 20 | Extend Implementation Of Non Void Return Single Argument 21 | IDECodeSnippetUserSnippet 22 | 23 | IDECodeSnippetVersion 24 | 2 25 | 26 | 27 | -------------------------------------------------------------------------------- /QM_tableViewCell_initWithStyle.codesnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDECodeSnippetCompletionPrefix 6 | initWithStyleForCell 7 | IDECodeSnippetCompletionScopes 8 | 9 | ClassImplementation 10 | 11 | IDECodeSnippetContents 12 | - (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { 13 | if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) { 14 | <#code#> 15 | } 16 | return self; 17 | } 18 | IDECodeSnippetIdentifier 19 | BF5695D8-5243-4DC2-8153-82B8858295AC 20 | IDECodeSnippetLanguage 21 | Xcode.SourceCodeLanguage.Objective-C 22 | IDECodeSnippetPlatformFamily 23 | iphoneos 24 | IDECodeSnippetSummary 25 | UITableViewCell的默认初始化方法 26 | IDECodeSnippetTitle 27 | initWithStyle:reuseIdentifier: 28 | IDECodeSnippetUserSnippet 29 | 30 | IDECodeSnippetVersion 31 | 2 32 | 33 | 34 | -------------------------------------------------------------------------------- /QM_cellForItemAtIndexPath.codesnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDECodeSnippetCompletionPrefix 6 | cellForItemAtIndexPath 7 | IDECodeSnippetCompletionScopes 8 | 9 | ClassImplementation 10 | 11 | IDECodeSnippetContents 12 | - (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath { 13 | 14 | UICollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:<#reuseIdentifier#> forIndexPath:indexPath]; 15 | 16 | <#code#> 17 | 18 | return cell; 19 | } 20 | IDECodeSnippetIdentifier 21 | 7AAC0412-41B1-4200-815D-CD1ED79A05E0 22 | IDECodeSnippetLanguage 23 | Xcode.SourceCodeLanguage.Objective-C 24 | IDECodeSnippetPlatformFamily 25 | iphoneos 26 | IDECodeSnippetTitle 27 | cellForItemAtIndexPath: 28 | IDECodeSnippetUserSnippet 29 | 30 | IDECodeSnippetVersion 31 | 2 32 | 33 | 34 | -------------------------------------------------------------------------------- /QM_property_swizzle_weak.codesnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDECodeSnippetCompletionPrefix 6 | propertySwizzleWeak 7 | IDECodeSnippetCompletionScopes 8 | 9 | ClassImplementation 10 | 11 | IDECodeSnippetContents 12 | static char kAssociatedObjectKey_<#property name#>; 13 | - (void)set<#property name#> { 14 | objc_setAssociatedObject(self, &kAssociatedObjectKey_<#property name#>, <#argument name#>, OBJC_ASSOCIATION_ASSIGN); 15 | } 16 | 17 | - <#property getter#> { 18 | return (<#Property type#> *)objc_getAssociatedObject(self, &kAssociatedObjectKey_<#property name#>); 19 | } 20 | IDECodeSnippetIdentifier 21 | B696ADA0-4026-4954-A454-8B7B2FCE40BF 22 | IDECodeSnippetLanguage 23 | Xcode.SourceCodeLanguage.Objective-C 24 | IDECodeSnippetTitle 25 | 用swizzle方式创建weak类型的property的getter/setter 26 | IDECodeSnippetUserSnippet 27 | 28 | IDECodeSnippetVersion 29 | 2 30 | 31 | 32 | -------------------------------------------------------------------------------- /QM_property_swizzle_copy.codesnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDECodeSnippetCompletionPrefix 6 | propertySwizzleCopy 7 | IDECodeSnippetCompletionScopes 8 | 9 | ClassImplementation 10 | 11 | IDECodeSnippetContents 12 | static char kAssociatedObjectKey_<#property name#>; 13 | - (void)set<#property name#> { 14 | objc_setAssociatedObject(self, &kAssociatedObjectKey_<#property name#>, <#argument name#>, OBJC_ASSOCIATION_COPY_NONATOMIC); 15 | } 16 | 17 | - <#property getter#> { 18 | return (<#Property type#> *)objc_getAssociatedObject(self, &kAssociatedObjectKey_<#property name#>); 19 | } 20 | IDECodeSnippetIdentifier 21 | 499A01BF-2245-446A-A7D5-D940FE6833CD 22 | IDECodeSnippetLanguage 23 | Xcode.SourceCodeLanguage.Objective-C 24 | IDECodeSnippetTitle 25 | 用swizzle方式创建copy类型的property的getter/setter 26 | IDECodeSnippetUserSnippet 27 | 28 | IDECodeSnippetVersion 29 | 2 30 | 31 | 32 | -------------------------------------------------------------------------------- /QM_property_swizzle_strong.codesnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDECodeSnippetCompletionPrefix 6 | propertySwizzleStrong 7 | IDECodeSnippetCompletionScopes 8 | 9 | ClassImplementation 10 | 11 | IDECodeSnippetContents 12 | static char kAssociatedObjectKey_<#property name#>; 13 | - (void)set<#property name#> { 14 | objc_setAssociatedObject(self, &kAssociatedObjectKey_<#property name#>, <#argument name#>, OBJC_ASSOCIATION_RETAIN_NONATOMIC); 15 | } 16 | 17 | - <#property getter#> { 18 | return (<#Property type#> *)objc_getAssociatedObject(self, &kAssociatedObjectKey_<#property name#>); 19 | } 20 | IDECodeSnippetIdentifier 21 | 11202851-7F95-4B80-9E01-ED9D300457E4 22 | IDECodeSnippetLanguage 23 | Xcode.SourceCodeLanguage.Objective-C 24 | IDECodeSnippetTitle 25 | 用swizzle方式创建strong类型的property的getter/setter 26 | IDECodeSnippetUserSnippet 27 | 28 | IDECodeSnippetVersion 29 | 2 30 | 31 | 32 | -------------------------------------------------------------------------------- /QMUI_extendNonVoidReturnTwoArgvs.codesnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDECodeSnippetCompletionPrefix 6 | extend_return_two_argvs 7 | IDECodeSnippetCompletionScopes 8 | 9 | CodeBlock 10 | 11 | IDECodeSnippetContents 12 | ExtendImplementationOfNonVoidMethodWithTwoArguments([<#targetClass#> class], @selector(<#targetSelector#>), <#argumentType1#>, <#argumentType2#>, <#returnType#>, ^<#returnType#>(<#targetClass#> *selfObject, <#argumentType1#> firstArgv, <#argumentType2#> secondArgv, <#returnType#> originReturnValue) { 13 | return <#custom extend#>; 14 | }); 15 | IDECodeSnippetIdentifier 16 | DFCA59C1-07E0-4857-AE4D-3C9045016712 17 | IDECodeSnippetLanguage 18 | Xcode.SourceCodeLanguage.Objective-C 19 | IDECodeSnippetTitle 20 | Extend Implementation Of Non Void Return Two Arguments 21 | IDECodeSnippetUserSnippet 22 | 23 | IDECodeSnippetVersion 24 | 2 25 | 26 | 27 | -------------------------------------------------------------------------------- /QM_property_swizzle_assign.codesnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDECodeSnippetCompletionPrefix 6 | propertySwizzleAssign 7 | IDECodeSnippetCompletionScopes 8 | 9 | ClassImplementation 10 | 11 | IDECodeSnippetContents 12 | static char kAssociatedObjectKey_<#property name#>; 13 | - (void)set<#property name#> { 14 | objc_setAssociatedObject(self, &kAssociatedObjectKey_<#property name#>, @(<#argument name#>), OBJC_ASSOCIATION_RETAIN_NONATOMIC); 15 | } 16 | 17 | - <#property getter#> { 18 | return [((NSNumber *)objc_getAssociatedObject(self, &kAssociatedObjectKey_<#property name#>)) <#NSNumber value type for property#>]; 19 | } 20 | IDECodeSnippetIdentifier 21 | 83D77BF6-443B-4513-A2C3-DAE9263D6995 22 | IDECodeSnippetLanguage 23 | Xcode.SourceCodeLanguage.Objective-C 24 | IDECodeSnippetTitle 25 | 用swizzle方式创建assign类型的property的getter/setter 26 | IDECodeSnippetUserSnippet 27 | 28 | IDECodeSnippetVersion 29 | 2 30 | 31 | 32 | -------------------------------------------------------------------------------- /rac_combine.codesnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDECodeSnippetCompletionPrefix 6 | rac_combine 7 | IDECodeSnippetCompletionScopes 8 | 9 | CodeBlock 10 | 11 | IDECodeSnippetContents 12 | [[[[RACSignal combineLatest:@[RACObserve(<#object#>, <#property1#>), 13 | RACObserve(<#object#>, <#property2#>)]] map:^id _Nullable(RACTuple *tuple) { 14 | return @(<#BOOL#>); 15 | }] distinctUntilChanged] subscribeNext:^(NSNumber *x) { 16 | @strongify(self); 17 | if (x.boolValue) { 18 | <#do something#> 19 | } 20 | }]; 21 | IDECodeSnippetIdentifier 22 | 901FCC55-9658-48F2-AFFD-DAD0957FDA3C 23 | IDECodeSnippetLanguage 24 | Xcode.SourceCodeLanguage.Objective-C 25 | IDECodeSnippetPlatformFamily 26 | iphoneos 27 | IDECodeSnippetTitle 28 | RAC Combine 29 | IDECodeSnippetUserSnippet 30 | 31 | IDECodeSnippetVersion 32 | 2 33 | 34 | 35 | -------------------------------------------------------------------------------- /QM_cellForRowAtIndexPath.codesnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDECodeSnippetCompletionPrefix 6 | cellForRowAtIndexPath 7 | IDECodeSnippetCompletionScopes 8 | 9 | ClassImplementation 10 | 11 | IDECodeSnippetContents 12 | - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 13 | static NSString *identifier = @"cell"; 14 | <#UITableViewCell#> *cell = [tableView dequeueReusableCellWithIdentifier:identifier]; 15 | if (!cell) { 16 | cell = [[<#UITableViewCell#> alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:identifier]; 17 | } 18 | return cell; 19 | } 20 | IDECodeSnippetIdentifier 21 | 021DC28A-CFB6-45A2-B055-D3D552E5301D 22 | IDECodeSnippetLanguage 23 | Xcode.SourceCodeLanguage.Objective-C 24 | IDECodeSnippetPlatformFamily 25 | iphoneos 26 | IDECodeSnippetTitle 27 | cellForRowAtIndexPath: 28 | IDECodeSnippetUserSnippet 29 | 30 | IDECodeSnippetVersion 31 | 2 32 | 33 | 34 | -------------------------------------------------------------------------------- /QMUI_overrideNonVoidReturnNonArgv.codesnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDECodeSnippetCompletionPrefix 6 | override_return_non_argv 7 | IDECodeSnippetCompletionScopes 8 | 9 | CodeBlock 10 | 11 | IDECodeSnippetContents 12 | OverrideImplementation([<#targetClass#> class], @selector(<#targetSelector#>), ^id(__unsafe_unretained Class originClass, SEL originCMD, IMP (^originalIMPProvider)(void)) { 13 | return ^<#returnType#>(<#targetClass#> *selfObject) { 14 | // call super 15 | <#returnType#> (*originSelectorIMP)(id, SEL); 16 | originSelectorIMP = (<#returnType#> (*)(id, SEL))originalIMPProvider(); 17 | <#returnType#> result = originSelectorIMP(selfObject, originCMD); 18 | 19 | return <#custom override#> 20 | }; 21 | }); 22 | IDECodeSnippetIdentifier 23 | 728398A0-1FA7-4753-9456-7F071139D57D 24 | IDECodeSnippetLanguage 25 | Xcode.SourceCodeLanguage.Objective-C 26 | IDECodeSnippetTitle 27 | Override Implementation Of Non Void Return Non Argument 28 | IDECodeSnippetUserSnippet 29 | 30 | IDECodeSnippetVersion 31 | 2 32 | 33 | 34 | -------------------------------------------------------------------------------- /QMUI_overrideVoidReturnNonArgv.codesnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDECodeSnippetCompletionPrefix 6 | override_void_non_argv 7 | IDECodeSnippetCompletionScopes 8 | 9 | CodeBlock 10 | 11 | IDECodeSnippetContents 12 | OverrideImplementation([<#targetClass#> class], @selector(<#targetSelector#>), ^id(__unsafe_unretained Class originClass, SEL originCMD, IMP (^originalIMPProvider)(void)) { 13 | return ^(<#targetClass#> *selfObject) { 14 | 15 | // call super 16 | void (*originSelectorIMP)(id, SEL); 17 | originSelectorIMP = (void (*)(id, SEL))originalIMPProvider(); 18 | originSelectorIMP(selfObject, originCMD); 19 | 20 | <#custom override#> 21 | }; 22 | }); 23 | IDECodeSnippetIdentifier 24 | 3E175A3D-A137-4744-9754-2A28B66E20A1 25 | IDECodeSnippetLanguage 26 | Xcode.SourceCodeLanguage.Objective-C 27 | IDECodeSnippetPlatformFamily 28 | iphoneos 29 | IDECodeSnippetTitle 30 | Override Implementation Of Void Return Non Argument 31 | IDECodeSnippetUserSnippet 32 | 33 | IDECodeSnippetVersion 34 | 2 35 | 36 | 37 | -------------------------------------------------------------------------------- /QMUI_overrideVoidReturnSingleArgv.codesnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDECodeSnippetCompletionPrefix 6 | override_void_single_argv 7 | IDECodeSnippetCompletionScopes 8 | 9 | CodeBlock 10 | 11 | IDECodeSnippetContents 12 | OverrideImplementation([<#targetClass#> class], @selector(<#targetSelector#>), ^id(__unsafe_unretained Class originClass, SEL originCMD, IMP (^originalIMPProvider)(void)) { 13 | return ^(<#targetClass#> *selfObject, <#argumentType#> firstArgv) { 14 | 15 | // call super 16 | void (*originSelectorIMP)(id, SEL, <#argumentType#>); 17 | originSelectorIMP = (void (*)(id, SEL, <#argumentType#>))originalIMPProvider(); 18 | originSelectorIMP(selfObject, originCMD, firstArgv); 19 | 20 | <#custom override#> 21 | }; 22 | }); 23 | IDECodeSnippetIdentifier 24 | D1B458BC-5F28-45E9-A26A-63BD851DD21C 25 | IDECodeSnippetLanguage 26 | Xcode.SourceCodeLanguage.Objective-C 27 | IDECodeSnippetTitle 28 | Override Implementation Of Void Return Single Argument 29 | IDECodeSnippetUserSnippet 30 | 31 | IDECodeSnippetVersion 32 | 2 33 | 34 | 35 | -------------------------------------------------------------------------------- /QMUI_exchangeMultipleImplementations.codesnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDECodeSnippetCompletionPrefix 6 | exchangeMultipleImplementations_QMUI 7 | IDECodeSnippetCompletionScopes 8 | 9 | All 10 | 11 | IDECodeSnippetContents 12 | + (void)load { 13 | static dispatch_once_t onceToken; 14 | dispatch_once(&onceToken, ^{ 15 | SEL selectors[] = { 16 | @selector(<#selector name1#>), 17 | @selector(<#selector name2#>) 18 | }; 19 | for (NSUInteger index = 0; index < sizeof(selectors) / sizeof(SEL); index++) { 20 | SEL originalSelector = selectors[index]; 21 | SEL swizzledSelector = NSSelectorFromString([@"<#new method prefix#>_" stringByAppendingString:NSStringFromSelector(originalSelector)]); 22 | ExchangeImplementations([self class], originalSelector, swizzledSelector); 23 | } 24 | }); 25 | } 26 | IDECodeSnippetIdentifier 27 | A5AEA3D2-5AC9-4ACE-B1C4-075983619EFF 28 | IDECodeSnippetLanguage 29 | Xcode.SourceCodeLanguage.Objective-C 30 | IDECodeSnippetTitle 31 | exchange multiple method implementations in +load with QMUI 32 | IDECodeSnippetUserSnippet 33 | 34 | IDECodeSnippetVersion 35 | 2 36 | 37 | 38 | -------------------------------------------------------------------------------- /QM_collectionViewDelegate.codesnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDECodeSnippetCompletionPrefix 6 | collectionViewDelegate 7 | IDECodeSnippetCompletionScopes 8 | 9 | ClassImplementation 10 | 11 | IDECodeSnippetContents 12 | - (NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView { 13 | return <#numberOfSections#>; 14 | } 15 | 16 | - (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section { 17 | return <#numberOfItemsInSection#>; 18 | } 19 | 20 | - (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath { 21 | 22 | UICollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:<#reuseIdentifier#> forIndexPath:indexPath]; 23 | 24 | <#code#> 25 | 26 | return cell; 27 | } 28 | IDECodeSnippetIdentifier 29 | 880149F5-CC79-4CBB-B879-33C44C90C226 30 | IDECodeSnippetLanguage 31 | Xcode.SourceCodeLanguage.Objective-C 32 | IDECodeSnippetPlatformFamily 33 | iphoneos 34 | IDECodeSnippetTitle 35 | UICollectionViewDelegate 36 | IDECodeSnippetUserSnippet 37 | 38 | IDECodeSnippetVersion 39 | 2 40 | 41 | 42 | -------------------------------------------------------------------------------- /QMUI_property_swizzle_weak.codesnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDECodeSnippetCompletionPrefix 6 | propertySwizzleWeak_QMUI 7 | IDECodeSnippetCompletionScopes 8 | 9 | ClassImplementation 10 | 11 | IDECodeSnippetContents 12 | static char kAssociatedObjectKey_<#property name#>; 13 | - (void)set<#property name#> { 14 | QMUIWeakObjectContainer *weakContainer = objc_getAssociatedObject(self, &kAssociatedObjectKey_<#property name#>); 15 | if (!weakContainer) { 16 | weakContainer = [QMUIWeakObjectContainer new]; 17 | } 18 | weakContainer.object = <#argument name#>; 19 | objc_setAssociatedObject(self, &kAssociatedObjectKey_<#property name#>, weakContainer, OBJC_ASSOCIATION_RETAIN_NONATOMIC); 20 | } 21 | 22 | - <#property getter#> { 23 | return (<#property type#> *)((QMUIWeakObjectContainer *)objc_getAssociatedObject(self, &kAssociatedObjectKey_<#property name#>)).object; 24 | } 25 | IDECodeSnippetIdentifier 26 | 5BD3118C-1D72-471C-BED5-AF14D9EE54FF 27 | IDECodeSnippetLanguage 28 | Xcode.SourceCodeLanguage.Objective-C 29 | IDECodeSnippetTitle 30 | QMUI - 用swizzle方式创建weak类型的property的getter/setter 31 | IDECodeSnippetUserSnippet 32 | 33 | IDECodeSnippetVersion 34 | 2 35 | 36 | 37 | -------------------------------------------------------------------------------- /QMUI_overrideNonVoidReturnSingleArgv.codesnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDECodeSnippetCompletionPrefix 6 | override_return_single_argv 7 | IDECodeSnippetCompletionScopes 8 | 9 | CodeBlock 10 | 11 | IDECodeSnippetContents 12 | OverrideImplementation([<#targetClass#> class], @selector(<#targetSelector#>), ^id(__unsafe_unretained Class originClass, SEL originCMD, IMP (^originalIMPProvider)(void)) { 13 | return ^<#returnType#>(<#targetClass#> *selfObject, <#argumentType#> firstArgv) { 14 | 15 | // call super 16 | <#returnType#> (*originSelectorIMP)(id, SEL, <#argumentType#>); 17 | originSelectorIMP = (<#returnType#> (*)(id, SEL, <#argumentType#>))originalIMPProvider(); 18 | <#returnType#> result = originSelectorIMP(selfObject, originCMD, firstArgv); 19 | 20 | return <#custom override#> 21 | }; 22 | }); 23 | IDECodeSnippetIdentifier 24 | 56A38ADE-F1BD-4B31-81B5-EE230595C776 25 | IDECodeSnippetLanguage 26 | Xcode.SourceCodeLanguage.Objective-C 27 | IDECodeSnippetTitle 28 | Override Implementation Of Non Void Return Single Argument 29 | IDECodeSnippetUserSnippet 30 | 31 | IDECodeSnippetVersion 32 | 2 33 | 34 | 35 | -------------------------------------------------------------------------------- /QMUI_overrideVoidReturnTwoArgvs.codesnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDECodeSnippetCompletionPrefix 6 | override_void_two_argvs 7 | IDECodeSnippetCompletionScopes 8 | 9 | CodeBlock 10 | 11 | IDECodeSnippetContents 12 | OverrideImplementation([<#targetClass#> class], @selector(<#targetSelector#>), ^id(__unsafe_unretained Class originClass, SEL originCMD, IMP (^originalIMPProvider)(void)) { 13 | return ^(<#targetClass#> *selfObject, <#argumentType1#> firstArgv, <#argumentType2#> secondArgv) { 14 | 15 | // call super 16 | void (*originSelectorIMP)(id, SEL, <#argumentType1#>, <#argumentType2#>); 17 | originSelectorIMP = (void (*)(id, SEL, <#argumentType1#>, <#argumentType2#>))originalIMPProvider(); 18 | originSelectorIMP(selfObject, originCMD, firstArgv, secondArgv); 19 | 20 | <#custom override#> 21 | }; 22 | }); 23 | IDECodeSnippetIdentifier 24 | BD790850-4DC6-4F53-AAB1-FF21AAE2BE74 25 | IDECodeSnippetLanguage 26 | Xcode.SourceCodeLanguage.Objective-C 27 | IDECodeSnippetTitle 28 | Override Implementation Of Void Return Two Arguments 29 | IDECodeSnippetUserSnippet 30 | 31 | IDECodeSnippetVersion 32 | 2 33 | 34 | 35 | -------------------------------------------------------------------------------- /QMUI_overrideNonVoidReturnTwoArgvs.codesnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDECodeSnippetCompletionPrefix 6 | override_return_two_argvs 7 | IDECodeSnippetCompletionScopes 8 | 9 | CodeBlock 10 | 11 | IDECodeSnippetContents 12 | OverrideImplementation([<#targetClass#> class], @selector(<#targetSelector#>), ^id(__unsafe_unretained Class originClass, SEL originCMD, IMP (^originalIMPProvider)(void)) { 13 | return ^<#returnType#>(<#targetClass#> *selfObject, <#argumentType1#> firstArgv, <#argumentType2#> secondArgv) { 14 | 15 | // call super 16 | <#returnType#> (*originSelectorIMP)(id, SEL, <#argumentType1#>, <#argumentType2#>); 17 | originSelectorIMP = (<#returnType#> (*)(id, SEL, <#argumentType1#>, <#argumentType2#>))originalIMPProvider(); 18 | <#returnType#> result = originSelectorIMP(selfObject, originCMD, firstArgv, secondArgv); 19 | 20 | return <#custom override#> 21 | }; 22 | }); 23 | IDECodeSnippetIdentifier 24 | 03686901-F803-4AB2-82AB-BD507D7403DB 25 | IDECodeSnippetLanguage 26 | Xcode.SourceCodeLanguage.Objective-C 27 | IDECodeSnippetTitle 28 | Override Implementation Of Non Void Return Two Arguments 29 | IDECodeSnippetUserSnippet 30 | 31 | IDECodeSnippetVersion 32 | 2 33 | 34 | 35 | -------------------------------------------------------------------------------- /QM_tableViewDelegate.codesnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDECodeSnippetCompletionPrefix 6 | tableViewDelegate 7 | IDECodeSnippetCompletionScopes 8 | 9 | ClassImplementation 10 | 11 | IDECodeSnippetContents 12 | - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { 13 | return <#number#>; 14 | } 15 | 16 | - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { 17 | return <#numberOfRows#>; 18 | } 19 | 20 | - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { 21 | return <#heightForRow#>; 22 | } 23 | 24 | - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 25 | static NSString *identifier = @"cell"; 26 | <#UITableViewCell#> *cell = [tableView dequeueReusableCellWithIdentifier:identifier]; 27 | if (!cell) { 28 | cell = [[<#UITableViewCell#> alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:identifier]; 29 | } 30 | return cell; 31 | } 32 | 33 | - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 34 | <#code#> 35 | } 36 | IDECodeSnippetIdentifier 37 | 10AF1F50-BF9C-4579-B6D7-45F5DF40D63A 38 | IDECodeSnippetLanguage 39 | Xcode.SourceCodeLanguage.Objective-C 40 | IDECodeSnippetPlatformFamily 41 | iphoneos 42 | IDECodeSnippetSummary 43 | UITableViewDelegate初始化代码 44 | IDECodeSnippetTitle 45 | UITableViewDelegate 46 | IDECodeSnippetUserSnippet 47 | 48 | IDECodeSnippetVersion 49 | 2 50 | 51 | 52 | -------------------------------------------------------------------------------- /QM_exchangeImplementation.codesnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDECodeSnippetCompletionPrefix 6 | exchangeImplementation 7 | IDECodeSnippetCompletionScopes 8 | 9 | ClassImplementation 10 | 11 | IDECodeSnippetContents 12 | + (void)load { 13 | static dispatch_once_t onceToken; 14 | dispatch_once(&onceToken, ^{ 15 | Class class = [self class]; 16 | SEL originSelector = @selector(<#origin selector#>); 17 | SEL newSelector = @selector(<#new selector#>); 18 | Method oriMethod = class_getInstanceMethod(class, originSelector); 19 | Method newMethod = class_getInstanceMethod(class, newSelector); 20 | if (newMethod) { 21 | BOOL isAddedMethod = class_addMethod(class, originSelector, method_getImplementation(newMethod), method_getTypeEncoding(newMethod)); 22 | if (isAddedMethod) { 23 | IMP oriMethodIMP = method_getImplementation(oriMethod) ?: imp_implementationWithBlock(^(id selfObject) {}); 24 | const char *oriMethodTypeEncoding = method_getTypeEncoding(oriMethod) ?: "v@:"; 25 | class_replaceMethod(class, newSelector, oriMethodIMP, oriMethodTypeEncoding); 26 | } else { 27 | method_exchangeImplementations(oriMethod, newMethod); 28 | } 29 | } 30 | }); 31 | } 32 | IDECodeSnippetIdentifier 33 | 0219854F-3A75-483E-9F4A-EFA34646365E 34 | IDECodeSnippetLanguage 35 | Xcode.SourceCodeLanguage.Objective-C 36 | IDECodeSnippetSummary 37 | 用来写 exchange implementations 的 load 方法模板 38 | IDECodeSnippetTitle 39 | exchange method implementations in +load 40 | IDECodeSnippetUserSnippet 41 | 42 | IDECodeSnippetVersion 43 | 2 44 | 45 | 46 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # qmui-ios-codesnippets 2 | *qmui-ios-codesnippets* 是一个 QMUI 团队日常工作中整理出来的用于 Xcode 的 iOS 通用代码片段集,其中也包含若干专用于 QMUI for iOS 框架的代码片段。 3 | 4 | 整理这个代码片段集的初衷有以下几点: 5 | 6 | 1. 我们发现由于 Xcode 本身的功能不足,导致我们经常在重写一些系统父类方法时容易忘了调用 `super`,从而出现一些很难排查的诡异bug。 7 | 2. Xcode 虽然有模糊匹配的代码提醒,但代码提醒只能帮你写方法名,而code snippets 还可以帮你填充一些默认的方法实现,或者直接移动光标到方法体内,省去几次光标操作。 8 | 3. 一些常用的写法本身语法可能比较复杂,难以记忆,例如实现一个类的单例、使用 `swizzle` 来重写系统控件的方法、block 在不同地方的语法不同等。 9 | 4. 一些代码本身看似简单,但由于特别常用,所以使用 code snippets 可以大大节省时间。 10 | 11 | 12 | ## 使用方式 13 | Xcode 的 Code Snippets 文件存放于 `~/Library/Developer/Xcode/UserData/CodeSnippets` 目录,只要直接把 `*.codesnippets` 文件放到这个目录下(若没有则自己创建),重启 Xcode 即可生效。 14 | 15 | 为了方便更新,建议直接将 QMUI iOS CodeSnippets clone 到这个目录内(注意,不是在 CodeSnippets 里创建一个 QMUI 的目录,这里不支持子目录): 16 | ```bash 17 | cd ~/Library/Developer/Xcode/UserData/CodeSnippets 18 | ``` 19 | CodeSnippets 目录为空: 20 | ```bash 21 | git clone https://github.com/QMUI/QMUI_iOS_CodeSnippets.git ./ 22 | ``` 23 | CodeSnippets 目录不为空: 24 | ```bash 25 | git init . 26 | git remote add origin https://github.com/QMUI/QMUI_iOS_CodeSnippets.git 27 | git pull origin master 28 | ``` 29 | 30 | 其中以 `QM_` 前缀开头的文件是通用的 Code Snippets,以 `QMUI_` 前缀开头的文件是专用于 `QMUI for iOS` 框架的代码片段。在下方的快捷键汇总里,QMUI 的代码片段将会以QMUI的形式标记出来。 31 | 32 | 注意,Xcode 对每一段 Code Snippet 都有规定适用的语言(Objective-C、Objective-C++、Swift、...)和作用域(如 Class 的 Interface 定义内、Class 的 Implementation 内、方法体内、...),所以测试某段 Code Snippet 不生效时请注意你当前是否处于不匹配的位置。 33 | 34 | ## 快捷键汇总 35 | *NSObject* 36 | - `pa` - 定义一个 `assign` 的 property 37 | - `par` - 定义一个 `assign, readonly` 的 property 38 | - `pc` - 定义一个 `copy` 的 property 39 | - `pcr` - 定义一个 `copy, readonly` 的 property 40 | - `ps` - 定义一个 `strong` 的property 41 | - `psr` - 定义一个 `strong, readonly` 的property 42 | - `pw` - 定义一个 `weak` 的property 43 | - `pwr` - 定义一个 `weak, readonly` 的property 44 | - `load_once` - 创建一个带 `dispatch_once` 的 `+load` 方法 45 | - `propertySwizzleAssign` - 用 `swizzle` 的方式定义一个 `assign` 的property 46 | - `propertySwizzleCopy` - 用 `swizzle` 的方式定义一个 `copy` 的property 47 | - `propertySwizzleStrong` - 用 `swizzle` 的方式定义一个 `strong` 的property 48 | - `propertySwizzleWeak` - 用 `swizzle` 的方式定义一个 `weak` 的property 49 | - `sharedInstance` - 为当前类创建一个实现单例功能的 `sharedInstance` 方法 50 | - `exchangeImplementation` - 重写当前类的 `load` 方法并在其中用 `swizzle` 替换方法实现 51 | - `exchangeImplementation_QMUI` - 用 QMUI 重写当前类的 `load` 方法并用 `ExchangeImplementations()` 函数替换方法的实现 52 | - `exchangeMultipleImplementations_QMUI` - 用 QMUI 重写当前类的 `load` 方法并用 `ExchangeImplementations()` 函数批量替换多个方法的实现 53 | - `override_void_non_argv` - 用 QMUI 的 `OverrideImplementation()` 重写指定 class 的某个无返回值、无参数的方法实现 54 | - `override_void_single_argv` - 用 QMUI 的 `OverrideImplementation()` 修改指定 class 的某个无返回值、带一个参数的方法实现 55 | - `override_void_two_argvs` - 用 QMUI 的 `OverrideImplementation()` 修改指定 class 的某个无返回值、带两个参数的方法实现 56 | - `override_return_non_argv` - 用 QMUI 的 `OverrideImplementation()` 修改指定 class 的某个带返回值、无参数的方法实现 57 | - `override_return_single_argv` - 用 QMUI 的 `OverrideImplementation()` 修改指定 class 的某个带返回值、带一个参数的方法实现 58 | - `override_return_two_argvs` - 用 QMUI 的 `OverrideImplementation()` 修改指定 class 的某个带返回值、带两个参数的方法实现 59 | - `extend_void_non_argv` - 用 QMUI 的 `ExtendImplementationOfVoidMethodWithoutArguments()` 修改指定 class 的某个无返回值、无参数的方法实现 60 | - `extend_void_single_argv` - 用 QMUI 的 `ExtendImplementationOfVoidMethodWithSingleArgument()` 修改指定 class 的某个无返回值、带一个参数的方法实现 61 | - `extend_void_two_argvs` - 用 QMUI 的 `ExtendImplementationOfVoidMethodWithTwoArguments()` 修改指定 class 的某个无返回值、带两个参数的方法实现 62 | - `extend_return_non_argv` - 用 QMUI 的 `ExtendImplementationOfNonVoidMethodWithoutArguments()` 修改指定 class 的某个带返回值、无参数的方法实现 63 | - `extend_return_single_argv` - 用 QMUI 的 `ExtendImplementationOfNonVoidMethodWithSingleArgument()` 修改指定 class 的某个带返回值、带一个参数的方法实现 64 | - `extend_return_two_argvs` - 用 QMUI 的 `ExtendImplementationOfNonVoidMethodWithTwoArguments()` 修改指定 class 的某个带返回值、带两个参数的方法实现 65 | 66 | 67 | *Block* 68 | - `blockParameterInMethod` - 声明一个用于 OC 方法参数的 block 69 | - `blockParameterInFunction` - 声明一个用于 C 函数参数的 block 70 | - `blockproperty` - 声明一个用于 property 的 block 71 | - `blocktypedef` - 用 `typedef` 定义一个 block 72 | - `blockvar` - 定义一个作为局部变量的 block 73 | 74 | 75 | *Method & Function* 76 | - `fnv` - 定义一个返回值为 `void` 的方法 77 | - `fnv:` - 定义一个返回值为 `void` 且带参数的方法 78 | - `fnblock` - 定义一个返回值类型为 block 的方法 79 | - `fnv_handleEvent` - 定义一个用于 `UIControl` 事件回调的方法 80 | - `fnv_longPress` - 定义一个用于 `UILongPressGestureRecognizer` 的回调方法(你就不用每次都去拼写那个很长的手势名字了) 81 | - `fnv_pan` - 定义一个用于 `UIPanGestureRecognizer` 的回调方法 82 | - `fnv_tap` - 定义一个用于 `UITapGestureRecognizer` 的回调方法 83 | 84 | 85 | *UIView* 86 | - `setFrame` - 为 `UIView` 设置 `frame` 87 | - `setFrame_QMUI` - QMUI 使用像素对齐的 `CGRectFlatMake()` 为 `UIView` 设置 `frame` 88 | - `setFrameX` - QMUI 使用 `CGRectSetX()` 修改 `UIView` 的 `frame.origin.x` 89 | - `setFrameY` - QMUI 使用 `CGRectSetY()` 修改 `UIView` 的 `frame.origin.y` 90 | - `setFrameXY` - QMUI 使用 `CGRectSetXY()` 修改 `UIView` 的 `frame.origin` 91 | - `sizeThatFits` - 为当前 view 创建 `sizeThatFits:` 方法 92 | - `layoutSubviews` - 展开 `layoutSubviews` 方法 93 | - `updateConstraints` - 展开 `updateConstraints` 方法 94 | - `getWidth` - 展开 `CGRectGetWidth()` 95 | - `getHeight` - 展开 `CGRectGetHeight()` 96 | - `getMinX` - 展开 `CGRectGetMinX()` 97 | - `getMinY` - 展开 `CGRectGetMinY()` 98 | - `addtarget` - 调用 `UIControl addTarget:action:forEvents:` 方法 99 | - `setImageForButton` - 为 `UIButton` 设置图片 100 | - `setTitleColorForButton` - 为 `UIButton` 设置文字颜色 101 | - `setTitleForButton` - 为 `UIButton` 设置文字 102 | 103 | *UITableView* 104 | - `initWithStyle` - 展开 `initWithStyle:` 方法 105 | - `initWithStyleForCell` - 展开 `UITableViewCell initWithStyle:reuseIdentifier:` 方法 106 | - `tableViewDelegate` - 展开常用的几个 `UITableViewDelegate` 方法 107 | - `numberOfSectionsInTableView` - 展开 `numberOfSectionsInTableView:`方法 108 | - `numberOfRowsInSection` - 展开 `tableView:numberOfRowsInSection:` 方法 109 | - `cellForRowAtIndexPath` - 展开 `tableView:cellForRowAtIndexPath:` 方法 110 | - `heightForRowAtIndexPath` - 展开 `tableView:heightForRowAtIndexPath:` 方法 111 | - `didSelectRowAtIndexPath` - 展开 `tableView:didSelectRowAtIndexPath:` 方法 112 | 113 | 114 | *UICollectionView* 115 | - `collectionViewDelegate` - 展开常用的几个`UICollectionViewDelegate` 方法 116 | - `numberOfSectionsInCollectionView` - 展开 `numberOfSectionsInCollectionView:` 117 | - `numberOfItemsInSection` - 展开 `collectionView:numberOfItemsInSection:` 118 | - `cellForItemAtIndexPath` - 展开 `collectionView:cellForItemAtIndexPath:` 119 | - `sizeForItemAtIndexPath` - 展开 `collectionView:layout:sizeForItemAtIndexPath:` 方法 120 | - `didSelectItemAtIndexPath` - 展开 `collectionView:didSelectItemAtIndexPath:` 方法 121 | - `didDeselectItemAtIndexPath` - 展开 `collectionView:didDeselectItemAtIndexPath:` 方法 122 | 123 | 124 | *UIViewController* 125 | - `initWithNib` - 展开 `initWithNibName:bundle:` 方法 126 | - `didInitialize` - 展开某些 QMUI 控件提供的 `didInitialize` 方法 127 | - `didInitializeWithStyle` - 展开 QMUICommonTableViewController 的 `didInitializeWithStyle:` 方法 128 | - `loadView` - 展开 `loadView` 方法 129 | - `viewDidLoad` - 展开 `viewDidLoad` 方法 130 | - `viewWillAppear` - 展开 `viewWillAppear:` 方法 131 | - `viewDidAppear` - 展开 `viewDidAppear:` 方法 132 | - `viewWillDisappear` - 展开 `viewWillDisappear:` 方法 133 | - `viewDidDisappear` - 展开 `viewDidDisappear:` 方法 134 | - `viewDidLayoutSubviews` - 展开 `viewDidLayoutSubviews:` 方法 135 | - `updateViewConstraints` - 展开 `updateViewConstraints:` 方法 136 | - `addChildViewController` - 在当前 `UIViewController` 里添加 `childViewController` 137 | - `removeFromParentViewController` - 将 `childViewController` 从当前的 `UIViewController` 里移除 138 | - `initSubviews` - QMUI 展开 `initSubviews` 方法 139 | - `setupNavigationItems` - QMUI 重写 `QMUICommonViewController` 里的 `setupNavigationItems` 方法 140 | - `setupToolbarItems` - QMUI 重写 `QMUICommonViewController` 里的 `setupToolbarItems` 方法 141 | 142 | *UIBarButtonItem* 143 | - `backItem` - 用 QMUI 方法生成一个返回按钮 144 | - `boldTitleItem` - 用 QMUI 方法生成一个文字加粗的导航栏按钮 145 | - `closeItem` - 用 QMUI 方法生成一个导航栏上的关闭图标按钮 146 | - `imageItem` - 用 QMUI 方法生成一个导航栏上的图片按钮 147 | - `titleItem` - 用 QMUI 方法生成一个导航栏上的文字按钮 148 | 149 | 150 | *Other* 151 | - `pragma` - 展开一个用于 Xcode 导航的 `#pragma mark -` 宏 152 | - `log` - 展开 `NSLog(@"xxx")` 153 | - `osif` - 展开一个 @available(iOS xxx, \*) 的 if 判断 154 | - `externRefInH` - 在 `*.h` 文件里声明一个 `extern const` 的指针 155 | - `externRefInM` - 在 `*.m` 文件里为一个 `extern const` 的指针赋值 156 | - `externValueInH` - 在 `*.h` 文件里声明一个 `extern const` 的值变量 157 | - `externValueInM` - 在 `*.m` 文件里为一个 `extern const` 的变量赋值 158 | - `static reference` - 定义一个 `static` 的指针 159 | - `static` - 定义一个 `static` 的值变量 160 | - `__weakSelf` - 定义一个 `weak` 的 `self` 指针 161 | - `__strongSelf` - 将 `weakSelf` 指针改为 `strong` 的 `self` 指针 162 | - `logCallStackSymbols` - 用 `NSLog` 打出当前的方法调用栈信息 163 | - `timeConsuming` - 展开一段用 `CACurrentMediaTime()` 来计算方法耗时的代码 164 | --------------------------------------------------------------------------------