हाय सब लोग,NSTextField कस्टम में संपादित नहीं NSWindow
अगर मैं अपने नियंत्रक के ध्यान में रखते हुए NSTextField बनाने तो सब ठीक है - क्षेत्र संपादन योग्य है। दुर्भाग्य से, मुझे नए कस्टम NSWindow में NSTextField बनाना है। मेरा कोड बेलो एक ऐसा क्षेत्र बनाता है जो फोकस के बिना दिखता है (टेक्स्ट चयन ग्रे है) और संपादन योग्य नहीं है (कोई कर्सर नहीं है और कुंजी स्ट्रोक पर कोई प्रतिक्रिया नहीं है)। मैं माउस के साथ पाठ चयन बदल सकता हूं लेकिन यह सब कुछ है।
क्या मुझे एनएसविंडो को प्रमुख स्ट्रोक प्राप्त करने में सक्षम करना है?
आपकी मदद की सराहना, --Josef
NSRect windowRect = [[self.window contentView] frame] ;
NSWindow* uiWindow = [[NSWindow alloc] initWithContentRect:windowRect
styleMask:NSBorderlessWindowMask
backing:NSBackingStoreBuffered defer:YES];
[uiWindow setBackgroundColor: [NSColor redColor/*clearColor*/]];
[uiWindow setOpaque:NO];
NSView* uiView = [[[NSView alloc] initWithFrame:NSMakeRect(0, 0, windowRect.size.width, windowRect.size.height)] autorelease];
[uiView translateOriginToPoint:NSMakePoint(100, uiView.bounds.size.height/2)];
uiView.wantsLayer = YES;
[uiWindow setContentView:uiView];
NSTextField *textField;
textField = [[NSTextField alloc] initWithFrame:NSMakeRect(0, 0, 800, 80)];
[textField setFont:[NSFont fontWithName:@"Helvetica Bold" size:60]];
[textField setStringValue:@"My Label"];
[textField setBezeled:YES];
[textField setDrawsBackground:YES];
[textField setEditable:YES];
[textField setSelectable:YES];
[textField setEnabled:YES];
[uiView addSubview:textField];
// THIS DOES NOT WORK
[self.window addChildWindow:uiWindow ordered:NSWindowAbove];
// THIS WORKS
//[_graphicView addSubview:uiView];
मुझे अभी पता चला है कि यह विंडो शैली मास्क NSBorderlessWindowMask के कारण होता है। अगर मैं NSTitledWindowMask का उपयोग करता हूं तो यह ठीक है। क्या सीमा-रहित विंडो के लिए कीबोर्ड सक्षम करने का कोई तरीका है? –