मैं एक (1010 में नया) NSSplitViewItem पतन और अपनी खिड़की को स्थानांतरित करने के दौरान अनलॉक करने की कोशिश कर रहा हूं ताकि पूरी चीज को "जगह में" रखा जा सके।NSSplitViewItem पतन एनीमेशन और विंडो सेटफ्रेम विरोधाभासी
समस्या यह है कि मैं एनीमेशन में एक झटका हो रही है (जैसा कि here देखा) है।
func togglePanel(panelID: Int) {
if let splitViewItem = self.splitViewItems[panelID] as? NSSplitViewItem {
// Toggle the collapsed state
NSAnimationContext.runAnimationGroup({ context in
// special case for the left panel
if panelID == 0 {
var windowFrame = self.view.window.frame
let panelWidth = splitViewItem.viewController.view.frame.width
if splitViewItem.collapsed {
windowFrame.origin.x -= panelWidth
windowFrame.size.width += panelWidth
} else {
windowFrame.origin.x += panelWidth
windowFrame.size.width -= panelWidth
}
self.view.window.animator().setFrame(windowFrame, display: true)
}
splitViewItem.animator().collapsed = !splitViewItem.collapsed
}, completionHandler: nil)
}
}
मैं "धाराओं पार ना करें" मुद्दा (सत्र 213 से, WWDC'13) के बारे में पता कर रहा हूँ, जहां एक खिड़की का आकार बदलने:
कोड जहां मैं गिर कर रहा हूँ यह है एनीमेशन मुख्य थ्रेड पर चल रहा है और एक अलग थ्रेड पर चलने वाली कोर एनीमेशन पतन एनीमेशन एक दूसरे के साथ हस्तक्षेप करता है। मुख्य थ्रेड पर splitViewItem पतन एनीमेशन लाना गलत दृष्टिकोण की तरह लगता है और मैं एक सता भावना यह है कि मैं याद कर रहा हूँ करने का एक बेहतर तरीका है मिल गया है।
जब से मैं कहीं भी NSSplitViewItems पर किसी भी प्रलेखन नहीं मिल रहा (अभी तक) मैं इस पर कोई अंतर्दृष्टि की सराहना करेंगे।
मैं अगर किसी को भी एक नज़र चाहता GitHub here पर थोड़ा परीक्षण परियोजना है।
अद्यतन प्रस्तावित परियोजना अब समाधान के साथ अद्यतन कर दी गई है।
धन्यवाद, टेओ
शानदार, धन्यवाद। अच्छा स्पष्ट जवाब और बिंदु समाधान के लिए। –
इस मामले में किसी समूह में पतन एनीमेशन को लपेटने की कोई आवश्यकता नहीं है। –
अच्छा बिंदु! मैंने इसे हटा दिया है। – Taylor