0

我实际上是 Swift 开发人员,主要侧重于 UIKit,而不是 AppKit 或 Cocoa。所以 Xcode 告诉我 NSSearchField.stringValue?也不是 NSSearchField.text?正在工作,这是真的吗?如果是这样,我应该改用什么?

extension MapViewController: NSSearchFieldDelegate {
        override func searchFieldAction(sender: NSSearchField) 
            defer {
            }

            guard let text = NSSearchField.stringValue?.stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceAndNewlineCharacterSet())
                where !text.isEmpty else { return }

            let request = MKLocalSearchRequest()
            request.naturalLanguageQuery = text
            request.region = mapView.region

            let search = MKLocalSearch(request: request)
            search.startWithCompletionHandler { (response, error) in
                guard let item = response?.mapItems.first else { return }

                let annotation = item.placemark
                self.mapView.addAnnotation(annotation)
                self.mapView.showAnnotations([annotation], animated: true)
                self.mapView.selectAnnotation(annotation, animated: true)
            }
        }
4

1 回答 1

1

NSSearchField是类。sender是 的一个实例NSSearchField

你想使用类的实例sender.stringValue

于 2016-07-25T12:14:55.547 回答