अनिवार्य रूप से जो भी कोको समकक्ष [UILabel adjustsFontSizeToFitWidth]
है।मैं एनएसटीक्स्टफिल्ड को अपने टेक्स्ट फिट करने के लिए अपने फ़ॉन्ट आकार को ऑटोरेसीज़ करने के लिए कैसे कह सकता हूं?
उत्तर
मैंने जैरी क्रिनॉक के उत्कृष्ट एनएस (जिम्मेदार) स्ट्रिंग + जियोमेट्रिक्स (located here) और निम्न की तरह एक छोटी विधि का उपयोग किया। मुझे अभी भी एक आसान तरीके से रूचि है।
- (void) prepTextField:(NSTextField *)field withString:(NSString *)string
{
#define kMaxFontSize 32.0f
#define kMinFontSize 6.0f
float fontSize = kMaxFontSize;
while (([string widthForHeight:[field frame].size.height font:[NSFont systemFontOfSize:fontSize]] > [field frame].size.width) && (fontSize > kMinFontSize))
{
fontSize--;
}
[field setFont:[NSFont systemFontOfSize:fontSize]];
[field setStringValue:string];
[self addSubview:field];
}
सुपरक्लास में देखना न भूलें। एक एनएसटीक्स्टफिल्ड एक प्रकार का एनएससींट्रोल है, और प्रत्येक एनएससींट्रोल the sizeToFit
message का जवाब देता है।
मैं एक NSTextFieldCell उपवर्ग जो स्ट्रिंग ड्राइंग ओवरराइड करता है बनाने के द्वारा इसका समाधान कर लिया। ऐसा लगता है कि स्ट्रिंग फिट बैठती है और यदि यह फिट होने तक फ़ॉन्ट आकार को कम नहीं करता है। इसे और अधिक कुशल बनाया जा सकता है और मुझे नहीं पता कि यह कैसे व्यवहार करेगा जब cellFrame
की चौड़ाई 0 है। फिर भी यह मेरी आवश्यकताओं के लिए अच्छा पर्याप्त ™ था।
- (void)drawInteriorWithFrame:(NSRect)cellFrame inView:(NSView *)controlView
{
NSAttributedString *attributedString;
NSMutableAttributedString *mutableAttributedString;
NSSize stringSize;
NSRect drawRect;
attributedString = [self attributedStringValue];
stringSize = [attributedString size];
if (stringSize.width <= cellFrame.size.width) {
// String is already small enough. Skip sizing.
goto drawString;
}
mutableAttributedString = [attributedString mutableCopy];
while (stringSize.width > cellFrame.size.width) {
NSFont *font;
font = [mutableAttributedString
attribute:NSFontAttributeName
atIndex:0
effectiveRange:NULL
];
font = [NSFont
fontWithName:[font fontName]
size:[[[font fontDescriptor] objectForKey:NSFontSizeAttribute] floatValue] - 0.5
];
[mutableAttributedString
addAttribute:NSFontAttributeName
value:font
range:NSMakeRange(0, [mutableAttributedString length])
];
stringSize = [mutableAttributedString size];
}
attributedString = [mutableAttributedString autorelease];
drawString:
drawRect = cellFrame;
drawRect.size.height = stringSize.height;
drawRect.origin.y += (cellFrame.size.height - stringSize.height)/2;
[attributedString drawInRect:drawRect];
}
फ़ॉन्ट सही ढंग से, खड़ी केंद्र निम्न पंक्ति सही 'while' से पहले की जरूरत है बनाने के लिए – DarkDust
- 1. टेक्स्ट बॉक्स ऊंचाई/चौड़ाई फिट करने के लिए फ़ॉन्ट आकार का स्वतः आकार कैसे बदलें?
- 2. अपने फ्रेम आकार के अनुसार UILabel फ़ॉन्ट आकार सेट करें?
- 3. स्क्रीन के मुकाबले टेक्स्ट को फिट करने के लिए मैं UIButton का आकार कैसे बदलूं?
- 4. क्या टेक्स्ट व्यू पैरेंट को भरने के लिए अपने फ़ॉन्ट आकार को स्केल करता है?
- 5. मैं जीसीसी को फ़ंक्शन इनलाइन न करने के लिए कैसे कह सकता हूं?
- 6. "बेस्ट फिट" फ़ॉन्ट आकार - मैं वाक्य चौड़ाई को कैसे मापूं?
- 7. फोर्स टेक्स्ट लंबवत UILabel में फिट करने के लिए?
- 8. मैं अपने उद्धरण से बचने के लिए उपप्रोसेसर कैसे कह सकता हूं?
- 9. मैं अपने svn को कैसे अनुकूलित कर सकता हूं: extodules गिटार करने के लिए बाहरी रणनीति?
- 10. मैं लोगों को अपने ढांचे का प्रयास करने के लिए कैसे प्राप्त कर सकता हूं?
- 11. मैं अपने स्कैला कोड को रेखांकित करने के लिए इंटेलिज कैसे प्राप्त कर सकता हूं?
- 12. मैं अपने आईफोन ऐप को प्रोफाइल करने के लिए शार्क का उपयोग कैसे कर सकता हूं?
- 13. मैं अपने व्यस्त संकेतक को प्रदर्शित करने के लिए कैसे मजबूर कर सकता हूं? (डब्ल्यूपीएफ)
- 14. मैं अपने खोज तारों को हाइलाइट करने के लिए Emacs कैसे प्राप्त कर सकता हूं?
- 15. चेकबॉक्स टेक्स्ट एल अपने पाठ को फिट नहीं करता
- 16. मैं अपने टुकड़ों को नष्ट करने के लिए अपने कस्टम FragmentPagerAdapter कैसे कहूं?
- 17. फ़ॉन्ट-विस्मयकारी कैसे फ़ॉन्ट को स्केल करने के लिए?
- 18. कैसे करने के लिए अपने पीसी से apk आवेदन स्थापित करने के लिए अपने मोबाइल एंड्रॉयड
- 19. मैं अपनी सामग्री को फिट करने के लिए एक डीआईवी फैलाव कैसे सुनिश्चित कर सकता हूं?
- 20. मैं अपने कोको एप्लिकेशन को एप्लिकेशन के भीतर से बाहर निकलने के लिए कैसे कह सकता हूं?
- 21. मैं AngularJS को "रीफ्रेश" करने के लिए कैसे कह सकता हूं
- 22. मैं कुछ परीक्षणों को अनदेखा करने के लिए पर्ल की साबित उपयोगिता कैसे कह सकता हूं?
- 23. मैं मूल्य जोड़ने के लिए 'ConcurrentDictionary.GetOrAdd` कैसे कह सकता हूं?
- 24. क्या मैं अपने आवेदन को पुनरारंभ करने के लिए मुख्य() का उपयोग कर सकता हूं?
- 25. क्या मैं पोस्टग्रेस्क्ल से लेनदेन के भीतर त्रुटियों को अनदेखा करने के लिए कह सकता हूं
- 26. कंटेनर फिट करने के लिए एसवीजी स्केलिंग टेक्स्ट
- 27. मैं एक टेक्स्टव्यू कैसे बना सकता हूं जो अंतरिक्ष को फिट करने के लिए स्वचालित रूप से इसके फ़ॉन्ट आकार को बदलता है?
- 28. मैं अपने प्रोजेक्ट को 1.5 के खिलाफ पैकेज करने के लिए मेवेन को कैसे मजबूर कर सकता हूं?
- 29. मैं अपने सिस्टम पर एक विशिष्ट फ़ॉन्ट पर लॉजिकल फ़ॉन्ट (उदा। सांससेफ) को मैप करने के लिए जावा कैसे कहूं?
- 30. मैं अपने एसएसएच सत्र को बंद करने के बाद भी अपने Django सर्वर को कैसे चला सकता हूं?
मैं किसी और के लिए यह जवाब दे दिया। आप मेरा जवाब देख सकते हैं [यहां] (http://stackoverflow.com/questions/2908704/get-nstextfield-contents-to-scale/2911982#2911982)। ';' [NSMakeRange (0, [mutableAttributedString लंबाई]) mutableAttributedString removeAttribute:: @ "NSOriginalFont" रेंज] – regulus6633