मेरे पास एक साधारण विभाजन दृश्य स्थापित करने का समय है। पहला विभाजन दृश्य ढह गया है। मुझे इसके लिए न्यूनतम चौड़ाई निर्धारित करने की आवश्यकता है। मैं जो कुछ भी ऑनलाइन देखता हूं (NSSplitViewController/NSSplitView के लिए दुर्लभ) उद्देश्य-सी के लिए है, ऐप प्रतिनिधि में सब कुछ डालता है, और XIB का उपयोग करता है।NSSplitViews की न्यूनतम चौड़ाई निर्धारित करना
यहां परिदृश्य है: स्प्लिट व्यू कंट्रोलर के लिए एक सेग्यू के साथ विंडो कंट्रोलर, जिसमें दो स्प्लिट व्यू (2 व्यू कंट्रोलर) हैं।
किस ऑब्जेक्ट को NSSplitViewDelegate होना आवश्यक है?
संपादित करें: जोड़ना कोड स्निपेट: उदाहरण के लिए, मैं इस है:
import Cocoa
class ViewController: NSSplitViewController, NSSplitViewDelegate {
@IBOutlet weak var pdlSplitView: NSSplitView!
override func viewDidLoad() {
super.viewDidLoad()
}
override func splitView(splitView: NSSplitView, constrainMinCoordinate proposedMinimumPosition: CGFloat, ofSubviewAt dividerIndex: Int) -> CGFloat {
return proposedMinimumPosition + 200
}
}
वहाँ अधिक है कि मैं याद कर रहा हूँ है?
धन्यवाद
अद्यतन
नीचे टिप्पणी के आधार पर, मैं एक परिवर्तन किया है, लेकिन अब मैं AppDelegate के लिए वर्ग परिभाषा पर एक sigAbort मिलता है। Full code
ViewController:
import Cocoa
class ViewController: NSSplitViewController, NSSplitViewDelegate {
@IBOutlet weak var pdlSplitView: NSSplitView!
let publicDataListings : PDL = PDL()
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
self.pdlSplitView.delegate = self
}
override func splitView(splitView: NSSplitView, constrainMinCoordinate proposedMinimumPosition: CGFloat, ofSubviewAt dividerIndex: Int) -> CGFloat {
return proposedMinimumPosition + 200
}
}
SidebarViewController:
import Cocoa
class SidebarViewController: NSViewController {
override func viewDidLoad() {
super.viewDidLoad()
// Do view setup here.
}
}
DatasetViewController:
import Cocoa
class DatasetViewController: NSViewController, NSSplitViewDelegate {
override func viewDidLoad() {
super.viewDidLoad()
// Do view setup here.
}
}
अद्यतन मैं दूर अपने कस्टम NSSplitViewCont ले लिया रोलर क्लास और दो एनएसएसप्लिट व्यू क्लासेस बनाए, एक बाधा विधि के साथ। अब, मैं दोनों subviews देखते हैं, लेकिन वे काफी छोटी होती होनी चाहिए उससे अधिक कर रहे हैं:
सभी कि स्विफ्ट और स्टोरीबोर्ड उन के साथ इस किया है पर किसी को है?
क्या आप ऑटो लेआउट का उपयोग कर रहे हैं? ओएस के पहले संस्करण क्या है जिस पर आप अपना ऐप चलाने के लिए चाहते हैं? यदि आप 10.8 या बाद में लक्ष्यीकरण कर रहे हैं और ऑटो लेआउट का उपयोग कर रहे हैं, तो विभाजित दृश्य इसके सबव्यूज़ की बाधाओं का सम्मान करेगा। इसलिए, न्यूनतम चौड़ाई अंतर्निहित हो सकती है क्योंकि सबव्यू के भीतर कुछ अंतर्निहित चौड़ाई है और संपीड़न का प्रतिरोध करता है और उप-दृश्य में अग्रणी और पीछे की बाधाओं का सामना करता है। या आप सबव्यू पर स्पष्ट चौड़ाई बाधा उत्पन्न कर सकते हैं कि यह कुछ स्थिर से अधिक या बराबर हो। –
मैं लक्ष्य 10.10+ के साथ ठीक हूँ। मैं स्विफ्ट में ऐसा करने की कोशिश कर रहा हूं। मैंने बाधाओं को लागू करने की कोशिश की है, लेकिन वे छड़ी नहीं करते हैं। मुझे पता है कि यह अब एक मोबाइल दुनिया है, लेकिन बिल्ली, मैं अभी स्विफ्ट में सिर्फ एक स्प्लिट व्यू हैलो वर्ल्ड के लिए भुगतान करूंगा। तो मैं दौड़ के लिए बंद हो जाएगा। –
यदि आप कुछ स्प्लिट व्यू प्रतिनिधि विधियों को लागू करते हैं, तो स्प्लिट व्यू ऑटो लेआउट का उपयोग नहीं करेगा। विनिर्देशों के लिए 10.8 के लिए ऐपकिट रिलीज नोट्स देखें। साथ ही, मुझे यकीन नहीं है कि विभाजन दृश्य प्रतिनिधि विधियां 'NSSplitViewController' के साथ संगत हैं या नहीं। अगर उस प्रतिनिधि विधि को हटाने में मदद नहीं मिलती है, तो सेट अप करने की कोशिश की गई बाधाओं को दिखाएं और आपने यह कैसे किया। –