12

現在、Project Catalyst を使用して iOS アプリを macOS に移植中です。

すべてのテキスト フィールド、テキスト ビュー、およびテーブル ビューは、アクティブなときに青色のアウトラインを持ちます。

最近のベータ版の Apple Catalyst アプリ (News など) で気づいたので、単なるバグであることを願っています。

それ以外の方法で削除する方法を見つけた人はいますか?

4

6 に答える 6

1

柔軟性を高め、ストーリーボードで使用するために、Amerino の回答をわずかに改善しました。

@IBDesignable
class UITextViewCS: UITextView {
    @IBInspectable
    public var focusRing: UInt = 1 // 0-default, 1-None, 2-Exterior

    #if targetEnvironment(macCatalyst)
    @objc(_focusRingType)
    var focusRingType: UInt {
        guard [0, 1, 2].contains(focusRing) else { return 0 }
        return focusRing
    }
    #endif
}
于 2020-04-16T17:34:36.063 に答える
1

NSView API_setFocusRingType:と一致するように見えるプライベート メソッドがあります。これを使用してフォーカスリングをなくすことができましたが、これはアプリのレビューに合格しない可能性があります.

これは自己責任で使用してください。

SEL selector = NSSelectorFromString(@"_setFocusRingType:");
NSMethodSignature *signature = [self.textView methodSignatureForSelector:selector];
NSInvocation *invocation = [NSInvocation invocationWithMethodSignature:signature];
[invocation setSelector:selector];
NSUInteger arg = 1; // NSFocusRingTypeNone
[invocation setArgument:&arg atIndex:2];
[invocation invokeWithTarget:self.textView];

Appleから真の解決策が得られることを願っています。

于 2019-09-06T20:53:40.420 に答える