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