有什麼辦法可以像NSTextField
那樣設置NSTextView
的佔位符字符串嗎?我已經檢查過該物業但找不到它。我搜查了一些問題,但沒有一個正確的解釋。設置NSTextView的佔位符字符串
回答
我在網上找到了這個答案。 Philippe Mougin做了這個。
static NSAttributedString *placeHolderString;
@implementation TextViewWithPlaceHolder
+(void)initialize
{
static BOOL initialized = NO;
if (!initialized)
{
NSColor *txtColor = [NSColor grayColor];
NSDictionary *txtDict = [NSDictionary dictionaryWithObjectsAndKeys:txtColor, NSForegroundColorAttributeName, nil];
placeHolderString = [[NSAttributedString alloc] initWithString:@"This is my placeholder text" attributes:txtDict];
}
}
- (BOOL)becomeFirstResponder
{
[self setNeedsDisplay:YES];
return [super becomeFirstResponder];
}
- (void)drawRect:(NSRect)rect
{
[super drawRect:rect];
if ([[self string] isEqualToString:@""] && self != [[self window] firstResponder])
[placeHolderString drawAtPoint:NSMakePoint(0,0)];
}
- (BOOL)resignFirstResponder
{
[self setNeedsDisplay:YES];
return [super resignFirstResponder];
}
@end
雨燕2.0
var placeHolderTitleString: NSAttributedString = NSAttributedString(string: "Place Holder Value", attributes: [NSForegroundColorAttributeName : NSColor.grayColor()])
override func becomeFirstResponder() -> Bool {
self.needsDisplay = true
return super.becomeFirstResponder()
}
override func drawRect(rect: NSRect) {
super.drawRect(rect)
if (self.string! == "") {
placeHolderString.drawAtPoint(NSMakePoint(0, 0))
}
}
斯威夫特4
事實證明,有似乎已經成爲一個NSTextView
placeholderAttributedString
屬性未公開曝光。因此,您可以簡單地在自己的子類中實現它並獲取默認的佔位符行爲(類似於NSTextField
)。
class PlaceholderTextView: NSTextView {
@objc var placeholderAttributedString: NSAttributedString?
}
如果此屬性將來可用,則只需使用NSTextView而不是此子類。
我已經提出了一個要求蘋果公開此屬性的雷達http://www.openradar.me/33583675 – 2017-07-28 04:16:42
這似乎並不奏效。我在一個子類中實現了屬性,但不顯示它。 – Austin 2017-10-28 17:49:00
@JanApotheker是的,目前還不確定它是在swift4還是在10.13。這不起作用 – 2017-10-29 10:36:41
- 1. 設置NSTextView的佔位符字符串,無可可約束
- 2. 我如何設置佔位符字符(%)?
- 3. NSComboBox設置爲佔位符字符串顯示
- 4. 設置佔位符值
- 5. 使用換行符設置NSTextView字符串
- 6. Scala多行字符串佔位符
- 7. 佔位符的位置
- 8. 如何使用佔位符字符設置JFormattedTextField的值?
- 9. SQL Server中的字符串操作 - 添加佔位符字符
- 10. 字符串&字符串的設置值
- 11. 佔位符文字
- 12. Arquillian Graphene @位置佔位符
- 13. 位置佔位符文本
- 14. 使用佔位符字符創建字符串
- 15. 在Gtk.ComboBoxText中設置佔位符文本?
- 16. 在uisearchbar下爲佔位符設置UITextField
- 17. 如何設置佔位符JS
- 18. 使用xml中的初始字符串時隱藏字符串佔位符
- 19. 在字符串中放置可變寬度字體的空間佔位符,java
- 20. 設置字符串
- 21. jQuery的幫助:想輸入設置佔位符值的字段
- 22. 佔位符的PDO有效字符
- 23. 設置選擇佔位符的字體顏色
- 24. 如何在字段中設置佔位符文本的樣式?
- 25. Swift字符串和可可綁定:不顯示佔位符字符串
- 26. NSTextView的deleteToBeginningOfLine:刪除整個字符串
- 27. PropertyPlaceholderConfigurer位置內的Spring佔位符
- 28. 檢查插值字符串提供預期的佔位符
- 29. .net如何找到佔位符的子字符串
- 30. 用動態內容替換字符串中的佔位符
這是超級有用,但有關如何使佔位符文本換行多行的任何想法? – 2017-03-12 02:44:41