Merge pull request #717 from mastodon/fix-issue-660

Workaround paste crash on iOS 14.x issue
This commit is contained in:
CMK 2022-12-02 13:40:47 +08:00 committed by GitHub
commit b15ae5e50f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 14 additions and 10 deletions

View File

@ -13,17 +13,21 @@ extension MetaTextView {
public override func paste(_ sender: Any?) {
super.paste(sender)
var nextResponder = self.next;
// Force the event to bubble through ALL responders
// This is a workaround as somewhere down the chain the paste event gets eaten
while (nextResponder != nil) {
if let nextResponder = nextResponder {
if (nextResponder.responds(to: #selector(UIResponderStandardEditActions.paste(_:)))) {
nextResponder.perform(#selector(UIResponderStandardEditActions.paste(_:)), with: sender)
// fix #660
// https://github.com/mastodon/mastodon-ios/issues/660
if #available(iOS 15.0, *) {
var nextResponder = self.next;
// Force the event to bubble through ALL responders
// This is a workaround as somewhere down the chain the paste event gets eaten
while (nextResponder != nil) {
if let nextResponder = nextResponder {
if (nextResponder.responds(to: #selector(UIResponderStandardEditActions.paste(_:)))) {
nextResponder.perform(#selector(UIResponderStandardEditActions.paste(_:)), with: sender)
}
}
nextResponder = nextResponder?.next;
}
nextResponder = nextResponder?.next;
}
} // end if
}
}