第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

在不使用私有API的情況下獲取當(dāng)前的第一個(gè)響應(yīng)程序

在不使用私有API的情況下獲取當(dāng)前的第一個(gè)響應(yīng)程序

MMMHUHU 2019-06-24 15:14:05
在不使用私有API的情況下獲取當(dāng)前的第一個(gè)響應(yīng)程序一個(gè)多星期前,我提交了我的應(yīng)用程序,今天收到了令人恐懼的拒絕郵件。它告訴我,我的應(yīng)用程序不能被接受,因?yàn)槲沂褂玫氖且粋€(gè)非公共的API;具體來說,它說,應(yīng)用程序中包含的非公共API是FirstResponder。現(xiàn)在,違規(guī)的API調(diào)用實(shí)際上是我在這里找到的解決方案,所以:UIWindow *keyWindow = [[UIApplication sharedApplication] keyWindow];UIView   *firstResponder = [keyWindow performSelector: @selector(firstResponder)];如何在屏幕上獲得當(dāng)前的第一個(gè)響應(yīng)程序?我正在尋找一種不會(huì)讓我的應(yīng)用程序被拒絕的方法。
查看完整描述

3 回答

?
弒天下

TA貢獻(xiàn)1818條經(jīng)驗(yàn) 獲得超8個(gè)贊

在我的一個(gè)應(yīng)用程序中,如果用戶點(diǎn)擊背景,我經(jīng)常希望第一個(gè)響應(yīng)者辭職。為此,我在UIView上編寫了一個(gè)類別,我在UIWindow上調(diào)用它。

以下是基于這一點(diǎn),并應(yīng)返回第一個(gè)響應(yīng)者。

@implementation UIView (FindFirstResponder)- (id)findFirstResponder{
    if (self.isFirstResponder) {
        return self;        
    }
    for (UIView *subView in self.subviews) {
        id responder = [subView findFirstResponder];
        if (responder) return responder;
    }
    return nil;}@end

iOS 7+

- (id)findFirstResponder{
    if (self.isFirstResponder) {
        return self;
    }
    for (UIView *subView in self.view.subviews) {
        if ([subView isFirstResponder]) {
            return subView;
        }
    }
    return nil;}

斯威夫特

extension UIView {
    var firstResponder: UIView? {
        guard !isFirstResponder else { return self }

        for subview in subviews {
            if let firstResponder = subview.firstResponder {
                return firstResponder            }
        }

        return nil    }}

SWIFT中的用法示例:

if let firstResponder = view.window?.firstResponder {
    // do something with `firstResponder`}


查看完整回答
反對 回復(fù) 2019-06-24
?
慕斯王

TA貢獻(xiàn)1864條經(jīng)驗(yàn) 獲得超2個(gè)贊

如果你的最終目標(biāo)只是辭職第一反應(yīng)者,這應(yīng)該是可行的:[self.view endEditing:YES]


查看完整回答
反對 回復(fù) 2019-06-24
?
慕虎7371278

TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超4個(gè)贊

操縱第一個(gè)應(yīng)答者的一個(gè)常見方法是使用無目標(biāo)動(dòng)作。這是一種向響應(yīng)者鏈發(fā)送任意消息的方法(從第一個(gè)響應(yīng)者開始),然后沿著該鏈繼續(xù)下去,直到有人響應(yīng)該消息(已經(jīng)實(shí)現(xiàn)了匹配選擇器的方法)。

對于取消鍵盤的情況,無論哪個(gè)窗口或視圖是第一個(gè)響應(yīng)程序,這都是最有效的工作方式:

[[UIApplication sharedApplication] sendAction:@selector(resignFirstResponder) to:nil from:nil forEvent:nil];

這應(yīng)該比甚至更有效[self.view.window endEditing:YES].

(多虧了大扎弗提醒我這個(gè)概念)


查看完整回答
反對 回復(fù) 2019-06-24
  • 3 回答
  • 0 關(guān)注
  • 729 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號