更改后 NSSearchField 中的中心占位符字符串
Center placeholder string in NSSearchField after it was changed
我在 UI 中有一个带有占位符字符串的 NSSearchField。默认情况下,它的值为 Search 并且自动居中。但是当用户在边栏中更改选择时,我将占位符字符串替换为 "Search in {NAME OF SIDEBARITEM}"。例如:
如您所见,占位符字符串不再居中。在此搜索字段激活然后停用后,它将居中。
如何强制 NSSearchField 在更改后重新定位占位符字符串?
我目前使用的解决方法是向所有占位符字符串添加一些空白填充,使它们的大小大致相同。
设置占位符字符串后调用[searchField setNeedsLayout:YES]
。
我喜欢的唯一有效解决方案是将搜索字段的 stringValue
设置为某个非空值,然后在占位符更改后立即设置值:
@IBAction func setPlaceholder(sender: AnyObject) {
self.searchField.placeholderString = self.inputField.stringValue
let currentSearchStringValue = self.searchField.stringValue
self.searchField.stringValue = "-"
self.searchField.stringValue = currentSearchStringValue
}
我在 UI 中有一个带有占位符字符串的 NSSearchField。默认情况下,它的值为 Search 并且自动居中。但是当用户在边栏中更改选择时,我将占位符字符串替换为 "Search in {NAME OF SIDEBARITEM}"。例如:
如您所见,占位符字符串不再居中。在此搜索字段激活然后停用后,它将居中。
如何强制 NSSearchField 在更改后重新定位占位符字符串?
我目前使用的解决方法是向所有占位符字符串添加一些空白填充,使它们的大小大致相同。
设置占位符字符串后调用[searchField setNeedsLayout:YES]
。
我喜欢的唯一有效解决方案是将搜索字段的 stringValue
设置为某个非空值,然后在占位符更改后立即设置值:
@IBAction func setPlaceholder(sender: AnyObject) {
self.searchField.placeholderString = self.inputField.stringValue
let currentSearchStringValue = self.searchField.stringValue
self.searchField.stringValue = "-"
self.searchField.stringValue = currentSearchStringValue
}