3

我在 UI 中有一个带有 placeholderString 的 NSSearchField。默认情况下,它的值为 Search 并且自动居中。但是当用户在侧边栏中更改选择时,我将占位符字符串替换为“在 {NAME OF SIDEBARITEM} 中搜索”。例如:

在此处输入图像描述

如您所见,占位符字符串不再居中。在此搜索字段激活然后停用后,它将居中。

我如何强制 NSSearchField 在更改后重新定位占位符字符串?

4

3 回答 3

1

[searchField setNeedsLayout:YES]设置占位符字符串后调用。

于 2015-03-21T19:19:13.180 回答
0

我目前使用的解决方法是为所有占位符字符串添加一些空白填充,使它们的大小大致相同。

于 2015-03-20T00:49:47.400 回答
0

我喜欢的唯一可行的解​​决方案是将搜索字段设置stringValue为一些非空值,然后在占位符更改后立即设置为先前设置的值:

@IBAction func setPlaceholder(sender: AnyObject) {
    self.searchField.placeholderString = self.inputField.stringValue
    let currentSearchStringValue = self.searchField.stringValue
    self.searchField.stringValue = "-"
    self.searchField.stringValue = currentSearchStringValue
}
于 2015-12-17T13:33:31.120 回答