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 os x
- 5. 在Mac OS X中刪除shell可執行文件的dock圖標?
- 6. 如何在Mac OS X的NSTextField中啓用拼寫檢查?
- 7. Mac OS X文檔圖標模板?
- 8. 在css中的Mac OS X標籤樣式
- 9. gedit文本編輯器 - mac os x
- 10. mac os中的gcc版本4.1.2 x
- 11. Mac OS X中的兩個Perl版本?
- 12. NSTextField(標籤)歸因文本:選擇
- 13. 如何更改NStextField的插入文本(光標)? for os x swift 2
- 14. Mac OS X中的tsnames.ora文件Sierra 10.12.2
- 15. Apache RewriteRule從Querystring中刪除提交xy座標(Mac Snow Leopard OS X)
- 16. Mac OS X中的/ proc/uptime
- 17. netbeans - 刪除mac os上的subversion綁定x
- 18. 如何在Mac OS X上刪除MySQL的安裝
- 19. Mac OS X上的Emacs Lion正在刪除
- 20. 刪除OS X上的CoreData存儲?
- 21. 在Mac OS X中的文件的高分辨率圖標?
- 22. 將文本字段放入Mac OS X中的Menulet中
- 23. 使用ant刪除在mac os下的svn工作副本文件夾中的所有文件x
- 24. 在Mac OS X中閱讀windows.CSV文件
- 25. 編譯爲舊版本的Mac OS X
- 26. Mac OS X上的Xcode版本Lion 10.7.2
- 27. 獲取Mac OS X上的eclipse版本
- 28. Mac OS X版本的Texture2D.m,.h可用?
- 29. Mac Os x和xcode版本的iPod 3.1.3
- 30. Mac OS X Reference Library的離線副本?
感謝您的回覆。問題是,在'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