mirror of
https://github.com/zakk4223/CocoaSplit.git
synced 2026-05-15 14:15:50 -06:00
Added layout transition input config
This commit is contained in:
parent
33b0672632
commit
6082abd45a
6 changed files with 130 additions and 40 deletions
|
|
@ -9,17 +9,19 @@
|
|||
|
||||
#import <Cocoa/Cocoa.h>
|
||||
#import "CSLayoutTransitionViewProtocol.h"
|
||||
#import "CSSubLayoutTransitionViewController.h"
|
||||
#import "CSTransitionLayout.h"
|
||||
|
||||
@interface CSLayoutLayoutTransitionViewController : NSViewController <CSLayoutTransitionViewProtocol>
|
||||
@interface CSLayoutLayoutTransitionViewController : NSViewController <CSLayoutTransitionViewProtocol, NSWindowDelegate>
|
||||
{
|
||||
NSObject <CSLayoutTransitionViewProtocol> *_subTransitionViewController;
|
||||
NSPopover *_subPopover;
|
||||
NSWindow *_configWindow;
|
||||
NSViewController *_configViewController;
|
||||
|
||||
}
|
||||
|
||||
|
||||
@property (strong) CSTransitionBase *transition;
|
||||
@property (strong) CSTransitionLayout *transition;
|
||||
|
||||
@property (strong) NSArray *sourceLayouts;
|
||||
|
||||
|
|
@ -28,5 +30,6 @@
|
|||
|
||||
- (IBAction)configureInTransition:(id)sender;
|
||||
- (IBAction)configureOutTransition:(id)sender;
|
||||
-(IBAction)openInputConfigWindow:(id)sender;
|
||||
|
||||
@end
|
||||
|
|
|
|||
|
|
@ -37,6 +37,44 @@
|
|||
// Do view setup here.
|
||||
}
|
||||
|
||||
-(NSUndoManager *)windowWillReturnUndoManager:(NSWindow *)window
|
||||
{
|
||||
return [[NSUndoManager alloc] init];
|
||||
}
|
||||
|
||||
|
||||
-(IBAction)openInputConfigWindow:(id)sender
|
||||
{
|
||||
|
||||
NSObject<CSInputSourceProtocol> *configSrc = self.transition.inputSource;
|
||||
NSString *uuid = configSrc.uuid;
|
||||
NSViewController *newViewController = [configSrc configurationViewController];
|
||||
|
||||
|
||||
|
||||
_configWindow = [[NSWindow alloc] init];
|
||||
NSRect newFrame = [_configWindow frameRectForContentRect:NSMakeRect(0.0f, 0.0f, newViewController.view.frame.size.width, newViewController.view.frame.size.height)];
|
||||
|
||||
|
||||
|
||||
[_configWindow setFrame:newFrame display:NO];
|
||||
[_configWindow center];
|
||||
|
||||
[_configWindow setReleasedWhenClosed:NO];
|
||||
|
||||
|
||||
[_configWindow.contentView addSubview:newViewController.view];
|
||||
_configWindow.title = [NSString stringWithFormat:@"Transition Config (%@)", configSrc.name];
|
||||
_configWindow.delegate = self;
|
||||
|
||||
_configWindow.styleMask = NSTitledWindowMask|NSClosableWindowMask|NSMiniaturizableWindowMask;
|
||||
_configViewController = newViewController;
|
||||
|
||||
_configWindow.identifier = uuid;
|
||||
|
||||
[_configWindow makeKeyAndOrderFront:nil];
|
||||
}
|
||||
|
||||
/*
|
||||
- (IBAction)configureInTransition:(NSButton *)sender
|
||||
{
|
||||
|
|
|
|||
|
|
@ -15,11 +15,11 @@
|
|||
<customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/>
|
||||
<customObject id="-3" userLabel="Application" customClass="NSObject"/>
|
||||
<customView id="Hz6-mo-xeY">
|
||||
<rect key="frame" x="0.0" y="0.0" width="244" height="149"/>
|
||||
<rect key="frame" x="0.0" y="0.0" width="244" height="177"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="Nqr-9t-Ou9">
|
||||
<rect key="frame" x="18" y="85" width="40" height="17"/>
|
||||
<rect key="frame" x="18" y="111" width="40" height="17"/>
|
||||
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Layout" id="uqL-i0-tlb">
|
||||
<font key="font" metaFont="smallSystem"/>
|
||||
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
|
||||
|
|
@ -27,7 +27,7 @@
|
|||
</textFieldCell>
|
||||
</textField>
|
||||
<popUpButton verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="bKy-WN-sQO">
|
||||
<rect key="frame" x="61" y="83" width="166" height="22"/>
|
||||
<rect key="frame" x="61" y="109" width="166" height="22"/>
|
||||
<popUpButtonCell key="cell" type="push" title="Item 1" bezelStyle="rounded" alignment="left" controlSize="small" lineBreakMode="truncatingTail" state="on" borderStyle="borderAndBezel" imageScaling="proportionallyDown" inset="2" selectedItem="Tci-JU-KDM" id="tNZ-Md-AM6">
|
||||
<behavior key="behavior" lightByBackground="YES" lightByGray="YES"/>
|
||||
<font key="font" metaFont="smallSystem"/>
|
||||
|
|
@ -47,7 +47,7 @@
|
|||
</connections>
|
||||
</popUpButton>
|
||||
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="pef-lr-P9X">
|
||||
<rect key="frame" x="19" y="63" width="77" height="14"/>
|
||||
<rect key="frame" x="19" y="89" width="77" height="14"/>
|
||||
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Hold Duration" id="Dzc-yp-Tz8">
|
||||
<font key="font" metaFont="smallSystem"/>
|
||||
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
|
||||
|
|
@ -55,7 +55,7 @@
|
|||
</textFieldCell>
|
||||
</textField>
|
||||
<textField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="Xsi-Bx-JQy">
|
||||
<rect key="frame" x="102" y="60" width="53" height="19"/>
|
||||
<rect key="frame" x="102" y="86" width="53" height="19"/>
|
||||
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" drawsBackground="YES" id="krz-LW-yxA">
|
||||
<font key="font" metaFont="smallSystem"/>
|
||||
<color key="textColor" name="textColor" catalog="System" colorSpace="catalog"/>
|
||||
|
|
@ -66,7 +66,7 @@
|
|||
</connections>
|
||||
</textField>
|
||||
<button translatesAutoresizingMaskIntoConstraints="NO" id="UXv-J0-BWk">
|
||||
<rect key="frame" x="18" y="37" width="98" height="18"/>
|
||||
<rect key="frame" x="18" y="63" width="98" height="18"/>
|
||||
<buttonCell key="cell" type="check" title="Wait for media" bezelStyle="regularSquare" imagePosition="right" controlSize="small" state="on" inset="2" id="iXc-gu-sTh">
|
||||
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
|
||||
<font key="font" metaFont="smallSystem"/>
|
||||
|
|
@ -76,9 +76,9 @@
|
|||
</connections>
|
||||
</button>
|
||||
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="Ysy-qd-ePS">
|
||||
<rect key="frame" x="18" y="113" width="37" height="14"/>
|
||||
<rect key="frame" x="18" y="141" width="37" height="14"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" constant="33" id="Mr3-Gp-cMJ"/>
|
||||
<constraint firstAttribute="width" constant="33" id="Tqa-NS-jHd"/>
|
||||
</constraints>
|
||||
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Name" id="7zz-FC-HfU">
|
||||
<font key="font" metaFont="smallSystem"/>
|
||||
|
|
@ -87,7 +87,7 @@
|
|||
</textFieldCell>
|
||||
</textField>
|
||||
<textField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="d1C-oR-MtB">
|
||||
<rect key="frame" x="63" y="110" width="160" height="19"/>
|
||||
<rect key="frame" x="63" y="138" width="160" height="19"/>
|
||||
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" drawsBackground="YES" id="yY2-8b-isp">
|
||||
<font key="font" metaFont="smallSystem"/>
|
||||
<color key="textColor" name="textColor" catalog="System" colorSpace="catalog"/>
|
||||
|
|
@ -98,9 +98,9 @@
|
|||
</connections>
|
||||
</textField>
|
||||
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="LJ1-S6-our">
|
||||
<rect key="frame" x="18" y="17" width="88" height="20"/>
|
||||
<rect key="frame" x="18" y="43" width="88" height="20"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="14" id="g4t-Hw-s8x"/>
|
||||
<constraint firstAttribute="height" constant="14" id="EG3-Mg-lhF"/>
|
||||
</constraints>
|
||||
<buttonCell key="cell" type="check" title="Delay Action" bezelStyle="regularSquare" imagePosition="right" controlSize="small" state="on" inset="2" id="B66-Di-AaO">
|
||||
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
|
||||
|
|
@ -110,31 +110,44 @@
|
|||
<binding destination="qIT-yG-aZf" name="value" keyPath="selection.transitionAfterPre" id="zw7-BD-TTZ"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="0O5-x5-e1H">
|
||||
<rect key="frame" x="89" y="14" width="79" height="28"/>
|
||||
<buttonCell key="cell" type="push" title="Configure" bezelStyle="rounded" alignment="center" controlSize="small" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="dgD-GT-sSP">
|
||||
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
|
||||
<font key="font" metaFont="smallSystem"/>
|
||||
</buttonCell>
|
||||
<connections>
|
||||
<action selector="openInputConfigWindow:" target="-2" id="c6J-Ae-kQr"/>
|
||||
</connections>
|
||||
</button>
|
||||
</subviews>
|
||||
<constraints>
|
||||
<constraint firstItem="Ysy-qd-ePS" firstAttribute="leading" secondItem="Hz6-mo-xeY" secondAttribute="leading" constant="20" symbolic="YES" id="2e0-oK-Yf2"/>
|
||||
<constraint firstItem="Xsi-Bx-JQy" firstAttribute="leading" secondItem="pef-lr-P9X" secondAttribute="trailing" constant="8" symbolic="YES" id="40n-Ym-IZ8"/>
|
||||
<constraint firstItem="pef-lr-P9X" firstAttribute="leading" secondItem="UXv-J0-BWk" secondAttribute="leading" id="9gR-z7-bah"/>
|
||||
<constraint firstItem="LJ1-S6-our" firstAttribute="top" secondItem="UXv-J0-BWk" secondAttribute="bottom" constant="6" symbolic="YES" id="IZG-ox-QsT"/>
|
||||
<constraint firstItem="Xsi-Bx-JQy" firstAttribute="top" secondItem="bKy-WN-sQO" secondAttribute="bottom" constant="7" id="K8m-tp-3Ol"/>
|
||||
<constraint firstItem="pef-lr-P9X" firstAttribute="leading" secondItem="Hz6-mo-xeY" secondAttribute="leading" constant="21" id="KUU-nh-8ua"/>
|
||||
<constraint firstAttribute="bottom" secondItem="LJ1-S6-our" secondAttribute="bottom" constant="20" symbolic="YES" id="PQp-JE-Znx"/>
|
||||
<constraint firstItem="UXv-J0-BWk" firstAttribute="leading" secondItem="LJ1-S6-our" secondAttribute="leading" id="bA7-Fk-0H5"/>
|
||||
<constraint firstItem="Ysy-qd-ePS" firstAttribute="leading" secondItem="Nqr-9t-Ou9" secondAttribute="leading" id="cVy-27-kJf"/>
|
||||
<constraint firstItem="bKy-WN-sQO" firstAttribute="leading" secondItem="Nqr-9t-Ou9" secondAttribute="trailing" constant="8" symbolic="YES" id="cdi-8i-1mC"/>
|
||||
<constraint firstItem="UXv-J0-BWk" firstAttribute="top" secondItem="Xsi-Bx-JQy" secondAttribute="bottom" constant="8" symbolic="YES" id="dpS-oE-Syv"/>
|
||||
<constraint firstItem="d1C-oR-MtB" firstAttribute="leading" secondItem="Ysy-qd-ePS" secondAttribute="trailing" constant="10" id="fRM-Zs-TVO"/>
|
||||
<constraint firstItem="d1C-oR-MtB" firstAttribute="top" secondItem="Hz6-mo-xeY" secondAttribute="top" constant="20" symbolic="YES" id="gin-NQ-YBF"/>
|
||||
<constraint firstAttribute="trailing" secondItem="Xsi-Bx-JQy" secondAttribute="trailing" constant="89" id="hiM-2Y-iVr"/>
|
||||
<constraint firstItem="Xsi-Bx-JQy" firstAttribute="baseline" secondItem="pef-lr-P9X" secondAttribute="firstBaseline" id="iLf-TM-DML"/>
|
||||
<constraint firstItem="pef-lr-P9X" firstAttribute="top" secondItem="Nqr-9t-Ou9" secondAttribute="bottom" constant="8" symbolic="YES" id="k4w-vy-0AQ"/>
|
||||
<constraint firstItem="Ysy-qd-ePS" firstAttribute="baseline" secondItem="d1C-oR-MtB" secondAttribute="baseline" id="ksS-iq-BRT"/>
|
||||
<constraint firstAttribute="trailing" secondItem="d1C-oR-MtB" secondAttribute="trailing" constant="21" id="nPb-Jb-Xq4"/>
|
||||
<constraint firstAttribute="trailing" secondItem="bKy-WN-sQO" secondAttribute="trailing" constant="20" symbolic="YES" id="r3i-sN-RwF"/>
|
||||
<constraint firstItem="pef-lr-P9X" firstAttribute="baseline" secondItem="Xsi-Bx-JQy" secondAttribute="firstBaseline" id="vIN-ea-l0d"/>
|
||||
<constraint firstItem="bKy-WN-sQO" firstAttribute="baseline" secondItem="Nqr-9t-Ou9" secondAttribute="firstBaseline" id="w3Z-kM-cnh"/>
|
||||
<constraint firstItem="bKy-WN-sQO" firstAttribute="baseline" secondItem="Nqr-9t-Ou9" secondAttribute="firstBaseline" id="0o7-lh-k60"/>
|
||||
<constraint firstItem="pef-lr-P9X" firstAttribute="leading" secondItem="Hz6-mo-xeY" secondAttribute="leading" constant="21" id="2xP-GS-yxy"/>
|
||||
<constraint firstItem="pef-lr-P9X" firstAttribute="baseline" secondItem="Xsi-Bx-JQy" secondAttribute="firstBaseline" id="44t-ic-Y9C"/>
|
||||
<constraint firstItem="Ysy-qd-ePS" firstAttribute="baseline" secondItem="d1C-oR-MtB" secondAttribute="baseline" id="5KL-Qf-gjD"/>
|
||||
<constraint firstItem="0O5-x5-e1H" firstAttribute="leading" secondItem="Hz6-mo-xeY" secondAttribute="leading" constant="94" id="5cv-54-8kw"/>
|
||||
<constraint firstItem="d1C-oR-MtB" firstAttribute="leading" secondItem="Ysy-qd-ePS" secondAttribute="trailing" constant="10" id="9Hz-iU-3dI"/>
|
||||
<constraint firstItem="Ysy-qd-ePS" firstAttribute="leading" secondItem="Nqr-9t-Ou9" secondAttribute="leading" id="COi-yg-UeW"/>
|
||||
<constraint firstItem="d1C-oR-MtB" firstAttribute="top" secondItem="Hz6-mo-xeY" secondAttribute="top" constant="20" symbolic="YES" id="DPN-Un-Es1"/>
|
||||
<constraint firstItem="Xsi-Bx-JQy" firstAttribute="leading" secondItem="pef-lr-P9X" secondAttribute="trailing" constant="8" symbolic="YES" id="E6v-Ld-OZb"/>
|
||||
<constraint firstItem="Xsi-Bx-JQy" firstAttribute="baseline" secondItem="pef-lr-P9X" secondAttribute="firstBaseline" id="Fcl-nM-ehC"/>
|
||||
<constraint firstItem="0O5-x5-e1H" firstAttribute="top" secondItem="LJ1-S6-our" secondAttribute="bottom" constant="8" symbolic="YES" id="G4D-6f-31V"/>
|
||||
<constraint firstItem="pef-lr-P9X" firstAttribute="top" secondItem="Nqr-9t-Ou9" secondAttribute="bottom" constant="8" symbolic="YES" id="GWL-kU-5SA"/>
|
||||
<constraint firstItem="bKy-WN-sQO" firstAttribute="top" secondItem="d1C-oR-MtB" secondAttribute="bottom" constant="8" symbolic="YES" id="LPT-sh-1cR"/>
|
||||
<constraint firstItem="UXv-J0-BWk" firstAttribute="top" secondItem="Xsi-Bx-JQy" secondAttribute="bottom" constant="8" symbolic="YES" id="NWz-bl-7ct"/>
|
||||
<constraint firstItem="bKy-WN-sQO" firstAttribute="leading" secondItem="Nqr-9t-Ou9" secondAttribute="trailing" constant="8" symbolic="YES" id="PRa-0N-f9d"/>
|
||||
<constraint firstItem="Xsi-Bx-JQy" firstAttribute="top" secondItem="bKy-WN-sQO" secondAttribute="bottom" constant="7" id="Unw-Ns-5M0"/>
|
||||
<constraint firstAttribute="trailing" secondItem="bKy-WN-sQO" secondAttribute="trailing" constant="20" symbolic="YES" id="YOW-Dx-aFv"/>
|
||||
<constraint firstItem="UXv-J0-BWk" firstAttribute="leading" secondItem="LJ1-S6-our" secondAttribute="leading" id="g7k-lO-29W"/>
|
||||
<constraint firstAttribute="trailing" secondItem="d1C-oR-MtB" secondAttribute="trailing" constant="21" id="gRQ-mj-zMZ"/>
|
||||
<constraint firstAttribute="trailing" secondItem="0O5-x5-e1H" secondAttribute="trailing" constant="81" id="jE2-SZ-2Pp"/>
|
||||
<constraint firstItem="pef-lr-P9X" firstAttribute="leading" secondItem="UXv-J0-BWk" secondAttribute="leading" id="kxG-oB-dxZ"/>
|
||||
<constraint firstItem="Xsi-Bx-JQy" firstAttribute="centerX" secondItem="0O5-x5-e1H" secondAttribute="centerX" id="mf2-uq-bnG"/>
|
||||
<constraint firstItem="Ysy-qd-ePS" firstAttribute="leading" secondItem="Hz6-mo-xeY" secondAttribute="leading" constant="20" symbolic="YES" id="rbd-Mx-U7i"/>
|
||||
<constraint firstItem="LJ1-S6-our" firstAttribute="top" secondItem="UXv-J0-BWk" secondAttribute="bottom" constant="6" symbolic="YES" id="vAk-FI-2wc"/>
|
||||
</constraints>
|
||||
<point key="canvasLocation" x="-39" y="106.5"/>
|
||||
<point key="canvasLocation" x="-39" y="120.5"/>
|
||||
</customView>
|
||||
<userDefaultsController representsSharedInstance="YES" id="Bhg-Lt-wLT"/>
|
||||
<objectController id="qIT-yG-aZf" userLabel="transitionController">
|
||||
|
|
|
|||
|
|
@ -25,7 +25,8 @@
|
|||
@property (assign) float realHoldDuration;
|
||||
@property (strong) NSObject<CSInputSourceProtocol> *inputSource;
|
||||
@property (strong) NSObject<CSInputSourceProtocol> *configuredInputSource;
|
||||
|
||||
@property (strong) NSData *inputSourceSavedata;
|
||||
|
||||
@property (assign) bool waitForMedia;
|
||||
@property (assign) bool transitionAfterPre;
|
||||
-(NSObject<CSInputSourceProtocol> *)getInputSource;
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@
|
|||
|
||||
@implementation CSTransitionInput
|
||||
@synthesize holdDuration = _holdDuration;
|
||||
|
||||
@synthesize inputSource = _inputSource;
|
||||
|
||||
-(instancetype) init
|
||||
{
|
||||
|
|
@ -26,6 +26,7 @@
|
|||
if (newObj)
|
||||
{
|
||||
newObj.configuredInputSource = self.configuredInputSource;
|
||||
newObj.inputSourceSavedata = self.inputSourceSavedata;
|
||||
newObj.holdDuration = self.holdDuration;
|
||||
newObj.waitForMedia = self.waitForMedia;
|
||||
newObj.transitionAfterPre = self.transitionAfterPre;
|
||||
|
|
@ -46,6 +47,7 @@
|
|||
[aCoder encodeBool:self.transitionAfterPre forKey:@"transitionAfterPre"];
|
||||
}
|
||||
|
||||
|
||||
-(instancetype)initWithCoder:(NSCoder *)aDecoder
|
||||
{
|
||||
if (self = [super initWithCoder:aDecoder])
|
||||
|
|
@ -99,6 +101,26 @@
|
|||
return ret;
|
||||
}
|
||||
|
||||
-(void)setInputSource:(NSObject<CSInputSourceProtocol> *)inputSource
|
||||
{
|
||||
_inputSource = inputSource;
|
||||
}
|
||||
|
||||
|
||||
-(NSObject<CSInputSourceProtocol> *)inputSource
|
||||
{
|
||||
if (!_inputSource)
|
||||
{
|
||||
_inputSource = [self restoreInputSource];
|
||||
if (!_inputSource)
|
||||
{
|
||||
_inputSource = [self getInputSource];
|
||||
}
|
||||
}
|
||||
return _inputSource;
|
||||
}
|
||||
|
||||
|
||||
-(void)setHoldDuration:(NSNumber *)holdDuration
|
||||
{
|
||||
_holdDuration = holdDuration;
|
||||
|
|
@ -125,7 +147,7 @@
|
|||
-(NSString *)preChangeAction:(SourceLayout *)targetLayout
|
||||
{
|
||||
|
||||
self.inputSource = [self getInputSource];
|
||||
|
||||
if (!self.inputSource)
|
||||
{
|
||||
return nil;
|
||||
|
|
@ -188,9 +210,18 @@
|
|||
[scriptRet appendString:@"if (postPostScript) { (new Function('self', postPostScript))(self.postTransition);}"];
|
||||
}
|
||||
|
||||
[scriptRet appendString:@"self.inputSource = null;"];
|
||||
//[scriptRet appendString:@"self.inputSource = null;"];
|
||||
return scriptRet;
|
||||
}
|
||||
|
||||
-(NSObject<CSInputSourceProtocol> *)restoreInputSource
|
||||
{
|
||||
NSObject<CSInputSourceProtocol> *ret = nil;
|
||||
if (self.inputSourceSavedata)
|
||||
{
|
||||
ret = [NSKeyedUnarchiver unarchiveObjectWithData:self.inputSourceSavedata];
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
@end
|
||||
|
|
|
|||
|
|
@ -89,6 +89,10 @@
|
|||
return;
|
||||
}
|
||||
|
||||
if (!self.inputSource.sourceLayout)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
NSString *propName = [[keyPath componentsSeparatedByString:@"."] lastObject];
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue