我正在尝试获取用户输入(这将是url)并将其传递给NSURL。
目前,我定义了网址并初始化了nsurl。
我需要的是从文本字段中获取网址并使用nsurl初始化。
谢谢。
答案 0 :(得分:2)
NSURL(string: self.myTextField.text)
答案 1 :(得分:0)
由于这是Google在如何从用户输入中获取NSURL的第一个结果,因此我建议您使用NSDataDetector API。
此API的好处是,它将与用户认为是URL的任何东西一起使用,并且将提供匹配项中的NSURL对象。 [NSURL URLWithString:aString]
实际上仅在用户不懒惰并输入正确的URL时有效。
NSDataDetector* detector = [NSDataDetector dataDetectorWithTypes:NSTextCheckingTypeLink error:nil];
__block NSString* input = _urlField.stringValue;
__block NSURL* url = nil;
[detector enumerateMatchesInString:input options:0 range:NSMakeRange(0, input.length) usingBlock:^(NSTextCheckingResult * _Nullable result, NSMatchingFlags flags, BOOL * _Nonnull stop) {
if (result != nil && result.resultType == NSTextCheckingTypeLink)
{
url = result.URL;
// replace the input so that the scheme-check below can work on sane data
input = [input substringWithRange:result.range];
}
}];
if (url == nil) return;
// if the user did NOT explicitly start with http:
if ([url.scheme isEqual:@"http"] && input.length > @"http:".length && [[input substringToIndex:5] isEqual:@"http:"] == NO)
{
NSURLComponents* comps = [NSURLComponents componentsWithURL:url resolvingAgainstBaseURL:NO];
comps.scheme = @"https";
url = comps.URL;
}