4
A
回答
5
你能做到這樣,假設_textField
設置在您的廈門國際銀行的出口:
- (void) awakeFromNib
{
NSMutableAttributedString *as = [[_textField attributedStringValue] mutableCopy];
[as addAttribute:NSStrikethroughStyleAttributeName value:(NSNumber *)kCFBooleanTrue range:NSMakeRange(0, [as length])];
[_textField setAttributedStringValue:[as autorelease]];
}
編輯:
如果你想編寫一個自定義刪除線NSTextFieldCell
子類來代替,這應該是需要覆蓋的唯一方法是setStringValue:
- (void) setStringValue:(NSString *)aString
{
NSMutableAttributedString *as = [[NSMutableAttributedString alloc] initWithString:aString];
[as addAttribute:NSStrikethroughStyleAttributeName value:(NSNumber *)kCFBooleanTrue range:NSMakeRange(0, [as length])];
[self setAttributedStringValue:[as autorelease]];
}
1
對我來說,它的偉大工程創建自定義NSTextFieldCell
和壓倒一切由sbooth的辦法,結合drawInteriorWithFrame:inView:
如下所示:
- (void) drawInteriorWithFrame:(NSRect)cellFrame inView:(NSView *)controlView {
[self setAttributedStringFromStringValue];
[super drawInteriorWithFrame:cellFrame inView:controlView];
}
- (void) setAttributedStringFromStringValue { // add strikethrough
NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithString:self.stringValue];
[attributedString addAttribute:NSStrikethroughStyleAttributeName value:(NSNumber *)kCFBooleanTrue range:NSMakeRange(0, attributedString.length)];
[self setAttributedStringValue:attributedString];
}
相關問題
- 1. Java中的Mac OS X Finder標籤
- 2. 在SWIFT OS X中以編程方式添加和刪除NSTextField
- 3. 無法在Mac OS X中刪除)由mkstemp(創建的文件
- 4. 在mac中刪除行尾的標籤
- 5. 從NSTask輸出文本到NSTextField OS X - XCode目標-C
- 6. 電子簽名mac os x
- 7. 在Mac OS X中刪除shell可執行文件的dock圖標?
- 8. 如何在Mac OS X的NSTextField中啓用拼寫檢查?
- 9. 如何刪除文件時,文件名在Mac OS X太長
- 10. 從Mac OS X 10.6.7到最新版本的MAC OS X
- 11. Firebreath mac os x在插件窗口中創建NSTextField
- 12. 刪除標籤文本,但不刪除標籤內的文本框
- 13. Mac OS X文檔圖標模板?
- 14. Mac OS X恢復文件由git rm刪除
- 15. 在css中的Mac OS X標籤樣式
- 16. GCC標誌-Os來自Mac OS X?
- 17. gedit文本編輯器 - mac os x
- 18. Mac OS X文本轉語音性別
- 19. mac os中的gcc版本4.1.2 x
- 20. Mac OS X中的兩個Perl版本?
- 21. NSTextField子類textDidEndEditing:刪除文本
- 22. NSTextField(標籤)歸因文本:選擇
- 23. 如何從MAC OS X中刪除應用程序
- 24. 如何更改NStextField的插入文本(光標)? for os x swift 2
- 25. 在Mac OS X
- 26. Mac OS X Linker
- 27. 在Mac OS X
- 28. 在Mac OS X
- 29. Mac OS X PackageMaker
- 30. Mac OS X上的SimpleFTPUpload X
感謝您的回覆。問題是,在'awakeFromNib'中,我不知道將被插入到文本字段中的文本的長度。事實上,我使用可可綁定和_我從來沒有直接控制文本字段的內容。無論內容如何,都沒有辦法刪除標籤? – Dev
我現在明白得更清楚了。 'NSTextFieldCell'只有'font'和'color'屬性。你可以用一個自定義的'NSTextFieldCell'子類來解決這個問題(它不應該太難寫),或者你可以綁定到一個自定義粘連對象,當它的setter被調用時會在你的文本字段上調用'setAttributedStringValue:'綁定。或者你可以完全放棄綁定。這些解決方案都不是特別優雅,但我認爲他們會工作。 – sbooth
感謝子類「NSTextFieldCell」的好主意。我創建了一個名爲'StrikethroughTextFieldCell'的子類,並且我重新實現了'drawInteriorWithFrame:inView:':' - (void)drawInteriorWithFrame:(NSRect)cellFrame inView:(NSView *)controlView {[super drawInteriorWithFrame:cellFrame inView:controlView]; NSMutableAttributedString * as = [self.attributedStringValue mutableCopy]; [as addAttribute:NSStrikethroughStyleAttributeName value:(NSNumber *)kCFBooleanTrue range:NSMakeRange(0,as.length)]; [self setAttributedStringValue:as]; }'。然而,不幸的是,不能按預期工作。 – Dev