2017-07-29 31 views
1

重命名文件:NSOpenPanel總是試圖我使用的是<code>NSOpenPanel</code>讓用戶選擇一個文件,像這樣的點擊

NSOpenPanel *openPanel = [[NSOpenPanel alloc] init]; 
    openPanel.canChooseFiles = YES; 
    openPanel.allowsMultipleSelection = NO; 
    openPanel.canChooseDirectories = NO; 
    openPanel.allowedFileTypes = @[@"mov", @"mp4"]; 
    openPanel.allowsOtherFileTypes = NO; 

    [openPanel beginWithCompletionHandler:^(NSInteger result) { 
     if (result == NSFileHandlingPanelOKButton) { 
      [self.editorWindowController loadVideoWithUrl:openPanel.URL]; 
     } 

    }]; 

一切都很正常,唯一的問題是,當你點擊一個文件時,光標被設置爲文本編輯模式,所以它會嘗試重命名該文件。點擊其他地方,否則選擇正常的行。謝謝

+0

我做了一個新的Cocoa程序,增加了一個NSButton,並迷上了其作用的方式運行該代碼(除了'editorWindowController'的一部分,因爲你沒有提供),我不能重現你的問題。什麼版本的OS X和Xcode?你有[MCVE](https://stackoverflow.com/help/mcve)嗎? – Ssswift

+0

感謝您抽出時間@Ssswift。這就是所有正在執行的代碼,從菜單欄File> Open。 – user339946

+0

忘了提及有一些意見,有他們自己的鼠標光標,但不知道他們爲什麼會干涉NSOpenPanel – user339946

回答

2

這個問題很簡單,但很難找到。我有如下一段這是影響所有NSTableViews代碼:

extension NSTableView { 

    override open func validateProposedFirstResponder(_ responder: NSResponder, for event: NSEvent?) -> Bool { 
     return true 
    } 
} 
相關問題