2010-08-02 6 views
7

मैं फाइंडर, सफारी और ट्रांसमिशन जैसे अच्छे बनावट बटन को अपने टूलबार में फिर से बनाने की कोशिश कर रहा हूं। सबसे पहले मैंने आईबी और इस तरह के "बनावट बटन" में खींचकर शुरुआत की। जब कोई उपयोगकर्ता टूलबार को "केवल टेक्स्ट" मोड में सेट करता है, तो सभी ठीक से काम करता है। जब वह बटन पर क्लिक करता है तो टूलबार अपने "आइकन और लेबल" को सक्षम करेगा। यह सुनिश्चित करने के लिए कि यह कोड कोड नहीं है, टूलबार से एलिस कोड और प्रतिनिधियों को हटा दिया है।NSToolbarItem (setView) में NSButton जब "टेक्स्ट केवल" बलों मोड में "आइकन और लेबल" पर क्लिक किया गया

फिर, यह सुनिश्चित करने के लिए, मैंने एक नई परियोजना बनाई है (बिल्कुल कोई कोड नहीं) और मैं इस मुद्दे को एक एनएसटीयूएलबार के साथ एक एनएसटीूलबार के साथ एनएसबीटन के साथ एक एनएसटीूलबारइटम के साथ पुन: पेश कर सकता हूं।

की तरह कोड के माध्यम से NSButtons जोड़ना:

- (NSArray*)toolbarAllowedItemIdentifiers:(NSToolbar*)toolbar { 
    return [NSArray arrayWithObject:@"myToolbarMenu"]; 
} 

- (NSArray*)toolbarDefaultItemIdentifiers:(NSToolbar*)toolbar { 
    return [self toolbarAllowedItemIdentifiers:toolbar]; 
} 

- (NSToolbarItem*)toolbar:(NSToolbar*)toolbar 
    itemForItemIdentifier:(NSString*)str 
willBeInsertedIntoToolbar:(BOOL)flag 
{ 
    if ([str isEqualToString:@"myToolbarItem"] == YES) { 
     NSToolbarItem* item = [[NSToolbarItem alloc] initWithItemIdentifier:str]; 
     [item setView:[[NSButton alloc] init]]; 
     [item setMinSize:NSMakeSize(50,50)]; 
     [item setMaxSize:NSMakeSize(50,50)]; 
     [item setLabel:@"Text"]; 
     return [item autorelease]; 
    } 
    return nil; 
} 

लेकिन यह भी एक ही प्रभाव पड़ता है: जब मैं "केवल मोड पाठ" उपकरण पट्टी में उस में एक NSButton के साथ एक NSToolbarItem प्रेस खुद बलों इसे करने के लिए मोड है " आइकन और टेक्स्ट "।

क्या आपको कोई विचार है कि मैं इसे सही तरीके से कैसे काम कर सकता हूं या शायद सफारी आदि जैसे अच्छे दिखने वाले टूलबारिटम्स बनाने का विकल्प हो सकता है?

उत्तर

8

आपको प्रत्येक NSToolbarItem में एक मेनू दृश्य जोड़ने की आवश्यकता है जिसमें कस्टम दृश्य है। जब तक लक्ष्य मान्य अपने आइटम केवल-पाठ बटन के रूप में रहना चाहिए है

NSMenuItem *menuRep = [[NSMenuItem alloc] initWithTitle:@"Text" action:@selector(targetMethod:) keyEquivalent:@""]; 
[menuRep setTarget:<target>]; 
[item setMenuFormRepresentation:menuRep]; 

;: लाइन जहां NSToolbarItem आवंटित नीचे इस जोड़ने अन्यथा वे अक्षम हो जाएंगे। Setting a Toolbar Item's Representation देखें।

आम तौर पर आपको अपने लक्ष्य में validateToolbarItem लागू करने की आवश्यकता होगी, लेकिन कस्टम दृश्य आइटमों के लिए आपको इसके बजाय मान्य करने की आवश्यकता है: कुछ उचित करने के लिए। Validating Toolbar Items देखें।

+0

धीमी प्रतिक्रिया के लिए खेद है। उत्तर के लिए धन्यवाद, मैं निश्चित रूप से जितनी जल्दी हो सके इसे जांचता हूं। जवाब के लिए धन्यवाद। –

संबंधित मुद्दे

 संबंधित मुद्दे