小编lok*_*oki的帖子

如何从xip文件安装Xcode

我是macos的新手,我只需要一个带xcode的mac来编译我的应用程序.然而,对于macos sierra,我的usb有问题,不再工作了(我无法插入我的ipad pro)

在OSX el capitan下,我的usb工作得很好,但现在的问题是应用程序商店让我下载只能在sierra上运行的Xcode 8.3(奇怪的是它们提供你下载的东西与你的系统不兼容但是没有,这是苹果).所以我唯一的方法是手动下载xcode 8.2.1

现在我的问题,如何安装我刚刚下载的Xcode_8.2.1.xip?在不久的将来,如果我需要更新xcode(我想下载自己的新版本),我将如何做?还保存首选项和配置设置的位置?每次更新都会丢失这些偏好吗?

xcode xcode8

35
推荐指数
3
解决办法
6万
查看次数

PANIC:x86_64 主机上的 QEMU2 模拟器不支持 Avd 的 CPU 架构“arm64”

当我尝试在 Windows 上运行此命令时:

模拟器.exe -avd android13

其中 android13 是 arm64 avd 我收到错误:

INFO    | Android emulator version 31.3.13.0 (build_id 9189900) (CL:N/A)
emulator: INFO: Found systemPath c:\Users\zeus\AppData\Local\Android\Sdk\system-images\android-33\google_apis\arm64-v8a\
PANIC: Avd's CPU Architecture 'arm64' is not supported by the QEMU2 emulator on x86_64 host.
Run Code Online (Sandbox Code Playgroud)

我使用的是 Windows 10。如何运行具有 arm64 cpu 架构的 AVD?

android android-virtual-device android-emulator android-studio avd-manager

27
推荐指数
1
解决办法
2万
查看次数

EditText如何在没有任何操作栏的情况下激活复制/粘贴弹出窗口?

我在delphi下,我使用android框架创建一个编辑.当我将主题设置为Theme.DeviceDefault.Light.NoActionBar然后我可以在我的EditText中选择一些文本,我有一个弹出窗口"select all/cut/copy/paste/etc",如下图所示.

但是,当我选择Theme.Material.Light.NoActionBarTheme.Holo.Light.NoActionBar然后我无法选择我的EditText中的任何文本(我没有右或左文本选择句柄),当然我没有任何复制/粘贴弹出窗口

他们是否可以在Theme_Material_Light_NoActionBar上进行此复制/粘贴弹出?

在此输入图像描述 Theme.DeviceDefault.Light.NoActionBar

在此输入图像描述 Theme_Material_Light_NoActionBar

在此输入图像描述 Theme.Holo.Light.NoActionBar

注1:

当我将屏幕移动到水平然后编辑文本占用所有可用空间,然后我可以看到我的左右文本选择句柄,如下图所示,但我认为这是因为主题交换到Theme.DeviceDefault.Light.NoActionBar当我将屏幕移动到水平但我不确定:

在此输入图像描述

注2:

在我的editText上,当我执行setCustomSelectionActionModeCallback(new Callback(){})时,从不调用Callback :(这是不正常的我认为?editText中的哪些内容可以禁止回调?

注2:

我可以在所有主题中选择文本(但我不能将其复制出去),但除了在Theme.DeviceDefault.Light.NoActionBar中,我看不到左右文本选择句柄.

注3:

Theme.DeviceDefault.Light.NoActionBar仅在某些手机上显示左右文本选择句柄,如三星星系.在其他方面它没有用.

注4:

我发现了部分问题的根源!这是因为我通过WindowManager.addView(view,layout_params)创建我的视图,这样startactionmodeforChild返回null,这禁止动作栏和文本选择句柄显示.现在如果我在我的edittext中做了类似的事情:

@Override
public ActionMode startActionMode(ActionMode.Callback callback) {
    Activity host = (Activity) this.getContext();    
    return host.getWindow().getDecorView().startActionMode(callback); 
} 
Run Code Online (Sandbox Code Playgroud)

然后我可以看到左右文本动作句柄(但不是棉花糖,它只在棒棒糖上工作,我不知道为什么).我现在的问题是显示了操作栏,但它显示为空:(内部没有任何内容(但我可以看到剪切/复制/过去控件位于转储视图中的内部).所以现在我不寻找方法通过弹出菜单替换此操作栏(如图片Theme.DeviceDefault.Light.NoActionBar).任何想法?

android textview android-theme android-edittext android-styles

18
推荐指数
2
解决办法
5434
查看次数

为什么我的EditText复制/粘贴菜单位于EditText下?如何更改弹出窗口的z顺序?

注意

如果有人知道如何订购(z-order)Windows通过windowmanager添加,我也会接受答案,因为它将回答所有问题.实际上我只是windowManager.removeView(MyView)立即通过windowManager.addView(MyView)将视图放在另一个视图之前进行跟踪,但这并不理想,因为它可视地删除并添加视图.它看起来很疯狂,他们在android中没有构建功能来做这么简单的思考.


我创建了一个包含EditText的视图(linearlayout).我通过WindowManager.addView(view,Layout_Params)在活动中添加此视图;

但我有问题,edittext将生成的每个弹出窗口(如复制/过去菜单或单词建议菜单)将在其他视图下,甚至在他们自己的EditText视图下(不在图片上,edittext具有透明背景)

也有点奇怪,弹出由最后一个EditText生成我将会

在此输入图像描述

在此输入图像描述

在此输入图像描述

我用这些布局参数创建视图(即:LinearLayout):

protected WindowManager.LayoutParams createLayoutParams() {
    WindowManager.LayoutParams p = new WindowManager.LayoutParams();
    p.gravity = Gravity.LEFT | Gravity.TOP;     
    p.width = 0;
    p.height = 0;                       
    p.format = PixelFormat.TRANSLUCENT;
    p.softInputMode = WindowManager.LayoutParams.SOFT_INPUT_STATE_UNCHANGED;
    p.flags = NOT_FOCUSABLE_FLAGS;
    // TYPE_APPLICATION allows for popups in browser windows (like edit menus)
    p.type = WindowManager.LayoutParams.TYPE_APPLICATION; 
    p.token = null; 

    return p;
}
Run Code Online (Sandbox Code Playgroud)

我显示视图(谁只包含一个edittext)像这样:

    private final WindowManager mWindowManager;
    mWindowManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);

    WindowManager.LayoutParams lp = createLayoutParams();
    mWindowManager.addView(view, lp);
Run Code Online (Sandbox Code Playgroud)

那么如何让弹出窗口连接到editText前面的一切?

这个问题也可能有点帮助(关于窗口视图的z顺序): …

android android-layout android-edittext android-view android-windowmanager

15
推荐指数
1
解决办法
1141
查看次数

为什么例外没有被尝试抓住...除了结束;?

我有这个代码(在iOS下使用Delphi Tokyo运行):

procedure TMainForm.Button1Click(Sender: TObject);
var aData: NSData;
begin    
  try    
      try
        aData := nil;
      finally
        // this line triggers an exception
        aData.release;
      end;    
  except
    on E: Exception do begin
      exit;
    end;
  end;

end;
Run Code Online (Sandbox Code Playgroud)

通常,异常应该在except end块中捕获,但在这种情况下,它不会被处理程序捕获并且会传播到Application.OnException处理程序.

地址0000000100EE9A8C的访问冲突,访问地址0000000000000000

我错过了什么?

delphi firemonkey delphi-10.2-tokyo

15
推荐指数
1
解决办法
442
查看次数

为什么Delphi使用double来存储日期和时间而不是Int64?

为什么Delphi使用double(8字节)来存储日期和时间而不是Int64(8字节)?由于双精度浮点不是精确值,我很好奇unix日期的精度和存储在Int64值中的时间将优于Delphi日期和时间的精度?

delphi

11
推荐指数
1
解决办法
512
查看次数

如何在引擎盖下实施匿名方法?

Delphi是否"实例化"每个匿名方法(如对象)?如果是这样,Delphi何时创建此实例,最重要的是,Delphi何时释放它?

因为匿名方法还捕获外部变量并延长其生命周期,所以知道这些变量何时将从内存中"释放"非常重要.

在另一个匿名方法中声明匿名方法有什么可能的缺点.是否可以循环引用?

delphi anonymous-methods

10
推荐指数
2
解决办法
956
查看次数

AtomicCmpExchange在所有平台上都可靠吗?

我找不到AtomicCmpExchange(似乎隐藏)的实现,所以我不知道它的作用.

AtomicCmpExchange在所有平台上可靠吗?它是如何在内部实施的?它是否使用类似临界区的东西?

我有这种情况:

MainThread:

Target := 1;
Run Code Online (Sandbox Code Playgroud)

线程1:

x := AtomicCmpExchange(Target, 0, 0);
Run Code Online (Sandbox Code Playgroud)

线程2:

Target := 2;
Run Code Online (Sandbox Code Playgroud)

Thread3:

Target := 3;
Run Code Online (Sandbox Code Playgroud)

x永远是一个整数1,2或3,或可能是别的东西吗?我的意思是,即使AtomicCmpExchange(Target, 0, 0)未能交换该值,它是否返回一个"有效"整数(我的意思是,不是半读取整数,例如,如果另一个线程已经开始写入该值的一半)?

我想避免使用临界区,我需要最大速度.

delphi

10
推荐指数
1
解决办法
584
查看次数

如何创建函数/过程的别名?

在Delphi中有一种方法可以将过程声明为另一个过程的别名吗?就像是:

function AnAliasToUpperCase(const S: AnsiString): AnsiString = system.AnsiStrings.UpperCase;  
Run Code Online (Sandbox Code Playgroud)

然后在程序中调用AnAliasToUpperCaseUpperCase必须完全相同.

delphi alias function

10
推荐指数
2
解决办法
805
查看次数

LocalBroadcastManager 现已弃用,如何将数据从服务发送到活动?

我有一项服务需要通知主要活动。我用过LocalBroadcastManager,效果很好,但是LocalBroadcastManager已被弃用。

这是我在服务中的实际代码:

public void onTokenRefresh() {
      
    /* build the intent */
    Intent intent = new Intent(ACTION_TOKENREFRESHED);
    intent.putExtra("token", "xxx");
    
    /* send the data to registered receivers */
    try{
      LocalBroadcastManager.getInstance(this).sendBroadcast(intent);
    } catch (Throwable e){
      //no exception handling
    }  
  
  }
Run Code Online (Sandbox Code Playgroud)

在主要活动中,我收到如下通知:

context.registerReceiver(broadcastReceiver, intentFilter);
Run Code Online (Sandbox Code Playgroud)

我现在可以使用什么来删除已弃用的警告?我发现的有关从服务向活动发送数据的所有示例都使用 LocalBroadcastManager。有人可以给我一个可行的模型来迁移现有代码吗?

笔记

在我的示例中, TheonTokenRefresh是从 a 内部调用的background thread。这非常重要,因为这意味着我可以同时接收多个 onTokenRefresh,并且我必须将所有这些令牌转发到该活动。大多数提供的解决方案都使用实时数据,但做出如下声明:

public static final MutableLiveData<String> tokenLiveData = new MutableLiveData<>();

Background Thread1:
tokenLiveData.postValue(Token1);

Background Thread2 (at same time):
tokenLiveData.postValue(Token2);
Run Code Online (Sandbox Code Playgroud)

是否会将同时收到的所有代币转发到观察代币LiveData 的主要活动?主 Activity 一定会收到 token1 和 …

java android broadcastreceiver android-service localbroadcastmanager

10
推荐指数
1
解决办法
3904
查看次数