我有一個UIViewController
與UITextView
自動檢測其文本中的超鏈接。它工作正常,但我想用SFSafariViewController
打開鏈接,因此我保留在我的應用程序「內部」,而不是打開一個單獨的瀏覽器,這是「開箱即用」的行爲。打開網站與SFSafariViewController從UITextView自動檢測鏈接
我已經採取了下面的步驟大綱,但網站仍然打開一個單獨的Safari瀏覽器,而不是我的應用程序。我沒有收到任何錯誤或警告,但檢測到的網站仍然在單獨的瀏覽器中打開,而不是在我的應用程序中打開。 UITextViewDelegate
方法似乎沒有被調用(我扔了一個日誌語句來檢查)。
我看着UITextViewDelegate
,我想我想用這個方法來打開年代由UITextView
檢測網站:
- (BOOL)textView:(UITextView *)textView shouldInteractWithURL:(NSURL *)URL inRange:(NSRange)characterRange {
// Fill code in here to use SFSafariViewController
return YES;
}
什麼我迄今所做的:
1)進口SafariServices ,做了委託聲明,並在MyViewController中聲明瞭一個委託屬性。 ^h
@import SafariServices;
@interface MyViewController : UIViewController <UITextViewDelegate, SFSafariViewControllerDelegate>
@property(nonatomic, weak, nullable) id< SFSafariViewControllerDelegate, SFSafariViewControllerDelegate > delegate;
2)增加了一個代表部分,以我的.m文件,並試圖以這種方法來填補從上面的存根:
- (BOOL)textView:(UITextView *)textView shouldInteractWithURL:(NSURL *)URL inRange:(NSRange)characterRange {
SFSafariViewController *websiteToOpen = [[SFSafariViewController alloc]initWithURL:URL entersReaderIfAvailable:YES];
websiteToOpen.delegate = self;
[self presentViewController:websiteToOpen animated:YES completion:nil];
return YES;
}
我敢肯定這是100%,我這個碴但我無法超越終點線。我錯過了什麼?
你可以編輯你的答案,並把它放在斯威夫特?提前致謝!! –