Swift 如何放大NSSearchField上的搜索图标?

Swift 如何放大NSSearchField上的搜索图标?,swift,macos,cocoa,Swift,Macos,Cocoa,我正在创建一个高度大于默认值的搜索字段。虽然其文本大小可以增加到适当的大小,但图标的大小保持不变: 我试图通过覆盖NSSearchField的rectForSearchButton(whenCenter:)的默认矩形来解决这个问题。但是,它不仅没有增加按钮的大小,而且还复制了按钮图像 override func rectForSearchButton(whenCentered isCentered: Bool) -> NSRect { return NSRect(x: 10, y

我正在创建一个高度大于默认值的搜索字段。虽然其文本大小可以增加到适当的大小,但图标的大小保持不变:

我试图通过覆盖
NSSearchField
rectForSearchButton(whenCenter:)
的默认矩形来解决这个问题。但是,它不仅没有增加按钮的大小,而且还复制了按钮图像

override func rectForSearchButton(whenCentered isCentered: Bool) -> NSRect {
    return NSRect(x: 10, y: 10, width: 30, height: 30)
}

然后,我尝试对上述内容进行注释,并对
NSSearchFieldCell
进行子类化,结果类似

override func searchButtonRect(forBounds rect: NSRect) -> NSRect {
    return NSRect(x: 10, y: 10, width: 30, height: 30)
}


如何正确居中并放大此图标?我希望它填满整个空间并居中,或者至少看起来像一个普通的搜索字段。

您需要更改按钮图像的缩放比例。假设您的自定义类是从Storyboard/XIB实例化的,并且高度是通过constraint修改的,它可能如下所示:

class CustomSearchFiled: NSSearchField {

    override func awakeFromNib() {
        if let cell = self.cell as? NSSearchFieldCell {
            cell.searchButtonCell?.imageScaling = .scaleProportionallyUpOrDown
        }
    }
    ...